authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-07-05 17:06:38 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-07-05 17:06:38 -07:00
logecaf90414cf9773d13e537cd7ad657c44501a9be
treee6c6c2d8954bbb7ba3165a2447f4f4e99cf95ba0
parenta05c45e209e9f796b7b9e3a087110a2b39176d4f

refactor common to return items rather than accept list


2 files changed, 20 insertions(+), 18 deletions(-)

src/common.zig+17-17
......@@ -18,14 +18,13 @@ pub fn collect_deps_deep(dir: []const u8, mpath: []const u8, options: CollectOpt
1818 defer moduledeps.deinit();
1919 try std.fs.cwd().makePath(".zigmod/deps/files");
2020 if (m.root_files.len > 0) {
21 try add_files_package("root", m.root_files, moduledeps, m.name);
21 try moduledeps.append(try add_files_package("root", m.root_files, m.name));
2222 }
2323 try moduledeps.append(try collect_deps(dir, mpath, options));
2424 for (m.devdeps) |d| {
25 if (!d.is_for_this()) {
26 continue;
25 if (try get_module_from_dep(d, dir, m.name, options)) |founddep| {
26 try moduledeps.append(founddep);
2727 }
28 try get_module_from_dep(moduledeps, d, dir, m.name, options);
2928 }
3029 return u.Module{
3130 .is_sys_lib = false,
......@@ -49,13 +48,12 @@ pub fn collect_deps(dir: []const u8, mpath: []const u8, options: CollectOptions)
4948 const moduledeps = &std.ArrayList(u.Module).init(gpa);
5049 defer moduledeps.deinit();
5150 if (m.files.len > 0) {
52 try add_files_package(m.id, m.files, moduledeps, m.name);
51 try moduledeps.append(try add_files_package(m.id, m.files, m.name));
5352 }
5453 for (m.deps) |d| {
55 if (!d.is_for_this()) {
56 continue;
54 if (try get_module_from_dep(d, dir, m.name, options)) |founddep| {
55 try moduledeps.append(founddep);
5756 }
58 try get_module_from_dep(moduledeps, d, dir, m.name, options);
5957 }
6058 return u.Module{
6159 .is_sys_lib = false,
......@@ -182,11 +180,11 @@ fn get_moddir(basedir: []const u8, d: u.Dep, parent_name: []const u8, options: C
182180 }
183181}
184182
185pub fn get_module_from_dep(list: *std.ArrayList(u.Module), d: u.Dep, dir: []const u8, parent_name: []const u8, options: CollectOptions) anyerror!void {
183pub fn get_module_from_dep(d: u.Dep, dir: []const u8, parent_name: []const u8, options: CollectOptions) anyerror!?u.Module {
186184 const moddir = try get_moddir(dir, d, parent_name, options);
187185 switch (d.type) {
188186 .system_lib => {
189 try list.append(u.Module{
187 return u.Module{
190188 .is_sys_lib = true,
191189 .id = "",
192190 .name = d.path,
......@@ -200,7 +198,7 @@ pub fn get_module_from_dep(list: *std.ArrayList(u.Module), d: u.Dep, dir: []cons
200198 .clean_path = d.path,
201199 .yaml = null,
202200 .dep = d,
203 });
201 };
204202 },
205203 else => {
206204 var dd = try collect_deps(dir, try u.concat(&.{ moddir, "/zig.mod" }), options) catch |e| switch (e) {
......@@ -208,9 +206,10 @@ pub fn get_module_from_dep(list: *std.ArrayList(u.Module), d: u.Dep, dir: []cons
208206 if (d.main.len > 0 or d.c_include_dirs.len > 0 or d.c_source_files.len > 0) {
209207 var mod_from = try u.Module.from(d, dir, options);
210208 if (d.type != .local) mod_from.clean_path = u.trim_prefix(moddir, dir)[1..];
211 if (mod_from.is_for_this()) try list.append(mod_from);
209 if (mod_from.is_for_this()) return mod_from;
210 return null;
212211 }
213 return;
212 return e;
214213 },
215214 else => e,
216215 };
......@@ -226,12 +225,13 @@ pub fn get_module_from_dep(list: *std.ArrayList(u.Module), d: u.Dep, dir: []cons
226225 if (d.only_os.len > 0) dd.only_os = d.only_os;
227226 if (d.except_os.len > 0) dd.except_os = d.except_os;
228227 if (d.type == .local) dd.main = try std.fs.path.join(gpa, &.{ d.main, save.main });
229 if (dd.is_for_this()) try list.append(dd);
228 if (dd.is_for_this()) return dd;
229 return null;
230230 },
231231 }
232232}
233233
234fn add_files_package(pkg_name: []const u8, dirs: []const []const u8, list: *std.ArrayList(u.Module), parent_name: []const u8) !void {
234fn add_files_package(pkg_name: []const u8, dirs: []const []const u8, parent_name: []const u8) !u.Module {
235235 const destination = ".zigmod/deps/files";
236236 const fname = try std.mem.join(gpa, "", &.{ pkg_name, ".zig" });
237237
......@@ -289,8 +289,8 @@ fn add_files_package(pkg_name: []const u8, dirs: []const []const u8, list: *std.
289289 .yaml = null,
290290 .deps = &.{},
291291 };
292 try get_module_from_dep(list, d, destination, parent_name, .{
292 return (try get_module_from_dep(d, destination, parent_name, .{
293293 .log = false,
294294 .update = false,
295 });
295 })).?;
296296}
src/util/module.zig+3-1
......@@ -28,7 +28,9 @@ pub const Module = struct {
2828 const moddeps = &std.ArrayList(Module).init(gpa);
2929 defer moddeps.deinit();
3030 for (dep.deps) |d| {
31 try common.get_module_from_dep(moddeps, d, dir, dep.name, options);
31 if (try common.get_module_from_dep(d, dir, dep.name, options)) |founddep| {
32 try moddeps.append(founddep);
33 }
3234 }
3335 return Module{
3436 .is_sys_lib = false,