diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-23 17:34:01 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-23 17:42:49 +0300 |
| commit | ec2924d0d1f21417802c3efd0ed46b9db2c00582 (patch) | |
| tree | 00432d4dbb46bb82328dfb583e36293c1603bc81 /flake.nix | |
| parent | 0d2c20a46235ae2535d4fdef59b9529e44faa98f (diff) | |
feat: add optional nix flake support
refs #208
refs #221
refs #264
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..3a91a3ca --- /dev/null +++ b/flake.nix @@ -0,0 +1,82 @@ +{ + description = "herdr — terminal workspace manager for AI coding agents"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + + outputs = + { self, nixpkgs }: + let + lib = nixpkgs.lib; + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + forAllSystems = lib.genAttrs systems; + pkgsFor = system: import nixpkgs { inherit system; }; + in + { + packages = forAllSystems ( + system: + let + pkgs = pkgsFor system; + herdr = pkgs.callPackage ./nix/package.nix { }; + in + { + inherit herdr; + default = herdr; + } + ); + + apps = forAllSystems (system: { + default = { + type = "app"; + program = "${self.packages.${system}.default}/bin/herdr"; + meta.description = "Run Herdr"; + }; + }); + + checks = forAllSystems (system: { + herdr = self.packages.${system}.default; + default = self.checks.${system}.herdr; + }); + + devShells = forAllSystems ( + system: + let + pkgs = pkgsFor system; + in + { + default = pkgs.mkShell { + name = "herdr-dev"; + packages = with pkgs; [ + cargo + cargo-nextest + clippy + cmake + just + ninja + pkg-config + rustc + rustfmt + zig_0_15 + ]; + + env = { + LIBGHOSTTY_VT_OPTIMIZE = "Debug"; + LIBGHOSTTY_VT_SIMD = "true"; + }; + }; + } + ); + + formatter = forAllSystems (system: (pkgsFor system).nixfmt); + + overlays.default = final: _prev: { + herdr = final.callPackage ./nix/package.nix { }; + }; + }; +} |
