diff --git a/src/cmd_fetch.zig b/src/cmd_fetch.zig index 0e442e09b4ce28519dd07a01dbf3b890562b8249..a808efe156fb178fde867249f884ac51c6c5b8b2 100644 --- a/src/cmd_fetch.zig +++ b/src/cmd_fetch.zig @@ -55,7 +55,7 @@ pub fn execute(args: [][]u8) !void { }); const list = &std.ArrayList(u.Module).init(gpa); - try collect_pkgs(top_module, list); + try common.collect_pkgs(top_module, list); try w.writeAll("pub const _ids = .{\n"); try print_ids(w, list.items); @@ -202,17 +202,6 @@ fn print_sys_libs_to(w: fs.File.Writer, list: []u.Module, list2: *std.ArrayList( } } -fn collect_pkgs(mod: u.Module, list: *std.ArrayList(u.Module)) anyerror!void { - // - if (u.list_contains_gen(u.Module, list, mod)) { - return; - } - try list.append(mod); - for (mod.deps) |d| { - try collect_pkgs(d, list); - } -} - fn print_pkg_data_to(w: fs.File.Writer, list: *std.ArrayList(u.Module), list2: *std.ArrayList(u.Module)) anyerror!void { var i: usize = 0; while (i < list.items.len) : (i += 1) { diff --git a/src/common.zig b/src/common.zig index b418fdcc6245ca89ac46006840aeeff9e88b4e7c..a4449730712862084f96479111087a767af5d428 100644 --- a/src/common.zig +++ b/src/common.zig @@ -154,3 +154,13 @@ pub fn collect_deps(dir: []const u8, mpath: []const u8, comptime options: Collec .except_os = &[_][]const u8{}, }; } + +pub fn collect_pkgs(mod: u.Module, list: *std.ArrayList(u.Module)) anyerror!void { + if (u.list_contains_gen(u.Module, list, mod)) { + return; + } + try list.append(mod); + for (mod.deps) |d| { + try collect_pkgs(d, list); + } +}