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}