shuffle some code

This commit is contained in:
Mitchell Hashimoto
2023-11-05 15:46:31 -08:00
parent ea5ff77e29
commit b39d1d6095
2 changed files with 33 additions and 28 deletions

View File

@ -1134,38 +1134,42 @@ pub fn finalize(self: *Config) !void {
} }
} }
if (builtin.target.os.tag == .windows) { switch (builtin.os.tag) {
if (self.command == null) { .windows => {
log.warn("no default shell found, will default to using cmd", .{}); if (self.command == null) {
self.command = "cmd.exe"; log.warn("no default shell found, will default to using cmd", .{});
} self.command = "cmd.exe";
if (wd_home) {
var buf: [std.fs.MAX_PATH_BYTES]u8 = undefined;
if (try internal_os.home(&buf)) |home| {
self.@"working-directory" = try alloc.dupe(u8, home);
} }
}
} else {
// We need the passwd entry for the remainder
const pw = try internal_os.passwd.get(alloc);
if (self.command == null) {
if (pw.shell) |sh| {
log.info("default shell src=passwd value={s}", .{sh});
self.command = sh;
}
}
if (wd_home) { if (wd_home) {
if (pw.home) |home| { var buf: [std.fs.MAX_PATH_BYTES]u8 = undefined;
log.info("default working directory src=passwd value={s}", .{home}); if (try internal_os.home(&buf)) |home| {
self.@"working-directory" = home; self.@"working-directory" = try alloc.dupe(u8, home);
}
} }
} },
if (self.command == null) { else => {
log.warn("no default shell found, will default to using sh", .{}); // We need the passwd entry for the remainder
} const pw = try internal_os.passwd.get(alloc);
if (self.command == null) {
if (pw.shell) |sh| {
log.info("default shell src=passwd value={s}", .{sh});
self.command = sh;
}
}
if (wd_home) {
if (pw.home) |home| {
log.info("default working directory src=passwd value={s}", .{home});
self.@"working-directory" = home;
}
}
if (self.command == null) {
log.warn("no default shell found, will default to using sh", .{});
}
},
} }
} }
} }

View File

@ -103,6 +103,7 @@ fn homeWindows(buf: []u8) !?[]u8 {
if (homepath.ptr != path_buf.ptr) @panic("codebug"); if (homepath.ptr != path_buf.ptr) @panic("codebug");
break :blk homepath.len; break :blk homepath.len;
}; };
return buf[0 .. drive_len + path_len]; return buf[0 .. drive_len + path_len];
} }