repos / zmx

session persistence for terminal processes
git clone https://github.com/neurosnap/zmx.git

commit
99c40d3
parent
43e6f0f
author
Eric Bower
date
2026-04-08 22:35:27 -0400 EDT
chore: use env var fn for session name
1 files changed,  +6, -14
M src/main.zig
+6, -14
 1@@ -1043,11 +1043,7 @@ fn list(cfg: *Cfg, short: bool) !void {
 2     defer _ = gpa.deinit();
 3     const alloc = gpa.allocator();
 4 
 5-    const current_session = std.process.getEnvVarOwned(alloc, "ZMX_SESSION") catch |err| switch (err) {
 6-        error.EnvironmentVariableNotFound => null,
 7-        else => return err,
 8-    };
 9-    defer if (current_session) |name| alloc.free(name);
10+    const current_session = socket.getSeshNameFromEnv();
11     var buf: [4096]u8 = undefined;
12     var stdout = std.fs.File.stdout().writer(&buf);
13 
14@@ -1080,14 +1076,11 @@ fn detachAll(cfg: *Cfg) !void {
15     var gpa = std.heap.GeneralPurposeAllocator(.{}){};
16     defer _ = gpa.deinit();
17     const alloc = gpa.allocator();
18-    const session_name = std.process.getEnvVarOwned(alloc, "ZMX_SESSION") catch |err| switch (err) {
19-        error.EnvironmentVariableNotFound => {
20-            std.log.err("ZMX_SESSION env var not found: are you inside a zmx session?", .{});
21-            return;
22-        },
23-        else => return err,
24-    };
25-    defer alloc.free(session_name);
26+    const session_name = socket.getSeshNameFromEnv();
27+    if (session_name.len == 0) {
28+        std.log.err("ZMX_SESSION env var not found: are you inside a zmx session?", .{});
29+        return;
30+    }
31 
32     var dir = try std.fs.openDirAbsolute(cfg.socket_dir, .{});
33     defer dir.close();
34@@ -1257,7 +1250,6 @@ fn attach(daemon: *Daemon) !void {
35     const sesh = socket.getSeshNameFromEnv();
36     if (sesh.len > 0) {
37         return switchSesh(daemon, sesh);
38-        // return error.CannotAttachToSessionInSession;
39     }
40 
41     const result = try daemon.ensureSession();