diff --git a/src/cmd/init.zig b/src/cmd/init.zig index be87f7787824ef74ba1f41c3dbeeafe23677f97e..596ff7a552b36fab51b3ccd430d4692c0bfc3f69 100644 --- a/src/cmd/init.zig +++ b/src/cmd/init.zig @@ -7,7 +7,7 @@ const u = @import("./../util/index.zig"); // pub fn execute(args: [][]u8) !void { - const name = u.detect_pkgname(u.try_index([]const u8, args, 0, ""), null) catch |err| switch (err) { + const name = u.detect_pkgname(u.try_index([]const u8, args, 0, ""), "") catch |err| switch (err) { error.NoBuildZig => { u.assert(false, "init requires a build.zig file", .{}); unreachable; diff --git a/src/common.zig b/src/common.zig index 633270a4da260355ca6e133baef0d32967f13faf..80d6c7cec91174255e22bd026d1d7bbdfd503a1f 100644 --- a/src/common.zig +++ b/src/common.zig @@ -229,7 +229,7 @@ pub fn get_module_from_dep(d: *u.Dep, dir: []const u8, parent_name: []const u8, return null; } const moddirO = try std.fs.cwd().openDir(moddir, .{}); - const tryname = try u.detect_pkgname("", moddirO); + const tryname = try u.detect_pkgname("", moddir); const trymain = u.detct_mainfile("", moddirO, tryname) catch |err| switch (err) { error.CantFindMain => null, else => return err, diff --git a/src/util/funcs.zig b/src/util/funcs.zig index 4cc1184a461b4dfd5f3ea96cdadd52781df1db4a..aa327aeff46da35d74f7a06045e60cf934d926d6 100644 --- a/src/util/funcs.zig +++ b/src/util/funcs.zig @@ -265,14 +265,14 @@ pub fn slice(comptime T: type, input: []const T, from: usize, to: usize) []const return input[f..t]; } -pub fn detect_pkgname(override: []const u8, dir: ?std.fs.Dir) ![]const u8 { +pub fn detect_pkgname(override: []const u8, dir: []const u8) ![]const u8 { if (override.len > 0) { return override; } - if (!(try does_file_exist("build.zig", dir))) { + if (!(try does_file_exist("build.zig", try std.fs.cwd().openDir(dir, .{})))) { return error.NoBuildZig; } - const dpath = try (dir orelse std.fs.cwd()).realpathAlloc(gpa, "build.zig"); + const dpath = try std.fs.realpathAlloc(gpa, try std.mem.concat(gpa, u8, &.{ dir, "build.zig" })); const splitP = try split(dpath, std.fs.path.sep_str); var name = splitP[splitP.len - 2]; name = trim_prefix(name, "zig-"); diff --git a/src/util/modfile.zig b/src/util/modfile.zig index 43709bd8902446b983f6a38371fcfc85a41e4524..2625607542968c6778c08c768c711fce9215bc0a 100644 --- a/src/util/modfile.zig +++ b/src/util/modfile.zig @@ -26,10 +26,8 @@ pub const ModFile = struct { root_files: []const []const u8, files: []const []const u8, - pub fn init(alloc: *std.mem.Allocator, fpath: []const u8) !Self { - // - const mpath = try std.fs.realpathAlloc(alloc, fpath); - const file = try std.fs.openFileAbsolute(mpath, .{}); + pub fn init(alloc: *std.mem.Allocator, mpath: []const u8) !Self { + const file = try std.fs.cwd().openFile(mpath, .{}); defer file.close(); const input = try file.reader().readAllAlloc(alloc, mb); const doc = try yaml.parse(alloc, input);