From 5b423d1cefbfc57b9ca42218030c70fd1843e482 Mon Sep 17 00:00:00 2001 From: utox39 Date: Mon, 4 Aug 2025 00:35:09 +0200 Subject: [PATCH] feat(shell): handle 'SHELL' env var not found --- src/linux/user.zig | 4 +++- src/macos/user.zig | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/linux/user.zig b/src/linux/user.zig index d6bb3eb..5cd8a84 100644 --- a/src/linux/user.zig +++ b/src/linux/user.zig @@ -6,7 +6,9 @@ pub fn getUsername(allocator: std.mem.Allocator) ![]u8 { } pub fn getShell(allocator: std.mem.Allocator) ![]u8 { - const shell = try std.process.getEnvVarOwned(allocator, "SHELL"); + const shell = std.process.getEnvVarOwned(allocator, "SHELL") catch |err| if (err == error.EnvironmentVariableNotFound) { + return allocator.dupe(u8, "Unknown"); + } else return err; var child = std.process.Child.init(&[_][]const u8{ shell, "--version" }, allocator); defer allocator.free(shell); diff --git a/src/macos/user.zig b/src/macos/user.zig index 52da9fb..77c65a9 100644 --- a/src/macos/user.zig +++ b/src/macos/user.zig @@ -9,7 +9,9 @@ pub fn getUsername(allocator: std.mem.Allocator) ![]u8 { } pub fn getShell(allocator: std.mem.Allocator) ![]u8 { - const shell = try std.process.getEnvVarOwned(allocator, "SHELL"); + const shell = std.process.getEnvVarOwned(allocator, "SHELL") catch |err| if (err == error.EnvironmentVariableNotFound) { + return allocator.dupe(u8, "Unknown"); + } else return err; var child = std.process.Child.init(&[_][]const u8{ shell, "--version" }, allocator); defer allocator.free(shell);