| author | |
| committer | |
| log | ba55785f3853dad2bbaa835d12cf2b7625418957 |
| tree | 1a1633d002a99756052e32eb8d3d1da8c8d2ae04 |
| parent | 9649704a3c29d0135bdbf6c67a74bfa229dc4951 |
2 files changed, 4 insertions(+), 14 deletions(-)
src/cmd/init.zig+1-6| ... | ... | @@ -29,12 +29,7 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void { |
| 29 | 29 | |
| 30 | 30 | const ptype = try inquirer.forEnum(stdout, stdin, "Are you making an application or a library?", gpa, enum { exe, lib }, null); |
| 31 | 31 | |
| 32 | const name = try inquirer.forString(stdout, stdin, "package name:", gpa, u.detect_pkgname(gpa, u.try_index(string, args, 0, ""), "") catch |err| switch (err) { | |
| 33 | error.NoBuildZig => { | |
| 34 | u.fail("init requires a build.zig file", .{}); | |
| 35 | }, | |
| 36 | else => |ee| return ee, | |
| 37 | }); | |
| 32 | const name = try inquirer.forString(stdout, stdin, "package name:", gpa, try u.detect_pkgname(gpa, u.try_index(string, args, 0, ""), "")); | |
| 38 | 33 | |
| 39 | 34 | const entry = if (ptype == .lib) try inquirer.forString(stdout, stdin, "package entry point:", gpa, u.detct_mainfile(gpa, u.try_index(string, args, 1, ""), null, name) catch |err| switch (err) { |
| 40 | 35 | error.CantFindMain => null, |
src/util/funcs.zig+3-8| ... | ... | @@ -157,16 +157,11 @@ pub fn slice(comptime T: type, input: []const T, from: usize, to: usize) []const |
| 157 | 157 | } |
| 158 | 158 | |
| 159 | 159 | pub fn detect_pkgname(alloc: std.mem.Allocator, override: string, dir: string) !string { |
| 160 | if (override.len > 0) { | |
| 161 | return override; | |
| 162 | } | |
| 160 | if (override.len > 0) return override; | |
| 163 | 161 | const dirO = if (dir.len == 0) std.fs.cwd() else try std.fs.cwd().openDir(dir, .{}); |
| 164 | if (!(try extras.doesFileExist(dirO, "build.zig"))) { | |
| 165 | return error.NoBuildZig; | |
| 166 | } | |
| 167 | const dpath = try std.fs.realpathAlloc(alloc, try std.fs.path.join(alloc, &.{ dir, "build.zig" })); | |
| 162 | const dpath = try dirO.realpathAlloc(gpa, "."); | |
| 168 | 163 | const splitP = try split(alloc, dpath, std.fs.path.sep); |
| 169 | var name = splitP[splitP.len - 2]; | |
| 164 | var name = splitP[splitP.len - 1]; | |
| 170 | 165 | name = extras.trimPrefix(name, "zig-"); |
| 171 | 166 | assert(name.len > 0, "package name must not be an empty string", .{}); |
| 172 | 167 | return name; |