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) {
if (self.command == null) {
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);
switch (builtin.os.tag) {
.windows => {
if (self.command == null) {
log.warn("no default shell found, will default to using cmd", .{});
self.command = "cmd.exe";
}
}
} 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 (pw.home) |home| {
log.info("default working directory src=passwd value={s}", .{home});
self.@"working-directory" = home;
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);
}
}
}
},
if (self.command == null) {
log.warn("no default shell found, will default to using sh", .{});
}
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 (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");
break :blk homepath.len;
};
return buf[0 .. drive_len + path_len];
}