aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-23 17:34:01 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-23 17:42:49 +0300
commitec2924d0d1f21417802c3efd0ed46b9db2c00582 (patch)
tree00432d4dbb46bb82328dfb583e36293c1603bc81 /flake.nix
parent0d2c20a46235ae2535d4fdef59b9529e44faa98f (diff)
feat: add optional nix flake support
refs #208 refs #221 refs #264
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix82
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 { };
+ };
+ };
+}