Eric Bower
·
2026-10-20
1//! Example: list active zmx sessions and print their details.
2const std = @import("std");
3const zmx = @import("zmx");
4
5pub fn main(init: std.process.Init) !void {
6 const gpa = init.gpa;
7 const io = init.io;
8
9 const sessions = try zmx.list(gpa, io);
10 defer {
11 for (sessions) |s| s.deinit(gpa);
12 gpa.free(sessions);
13 }
14
15 if (sessions.len == 0) {
16 std.debug.print("no active sessions\n", .{});
17 return;
18 }
19
20 var buf: [4096]u8 = undefined;
21 var w = std.Io.File.stdout().writer(io, &buf);
22 for (sessions) |s| {
23 try w.interface.print("{s}\t", .{s.name});
24 if (s.pid) |pid| try w.interface.print("pid={d}\t", .{pid});
25 if (s.is_error) try w.interface.print("[error]\t", .{});
26 if (s.task_exit_code) |code| try w.interface.print("exit={d}\t", .{code});
27 if (s.labels) |labels| try w.interface.print("{s}\t", .{labels});
28 try w.interface.print("\n", .{});
29 }
30}