repos / zmx

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

Eric Bower  ·  2025-12-10

flake.nix

 1{
 2  description = "zmx - session persistence for terminal processes";
 3
 4  inputs = {
 5    zig2nix.url = "github:Cloudef/zig2nix";
 6  };
 7
 8  outputs =
 9    { zig2nix, ... }:
10    let
11      flake-utils = zig2nix.inputs.flake-utils;
12    in
13    (flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (
14      system:
15      let
16        env = zig2nix.outputs.zig-env.${system} {
17          zig = zig2nix.outputs.packages.${system}.zig-0_15_2;
18        };
19      in
20      with builtins;
21      with env.pkgs.lib;
22      let
23        zmx-package = env.package {
24          src = cleanSource ./.;
25          zigBuildFlags = [ "-Doptimize=ReleaseSafe" ];
26          zigPreferMusl = true;
27        };
28      in
29      {
30        packages = {
31          zmx = zmx-package;
32          default = zmx-package;
33        };
34
35        apps = {
36          zmx = {
37            type = "app";
38            program = "${zmx-package}/bin/zmx";
39          };
40          default = {
41            type = "app";
42            program = "${zmx-package}/bin/zmx";
43          };
44
45          build = env.app [ ] "zig build \"$@\"";
46
47          test = env.app [ ] "zig build test -- \"$@\"";
48        };
49
50        devShells.default = env.mkShell {
51        };
52      }
53    ));
54}