25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 1 | { |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 2 | inputs.nixpkgs.url = "github:NixOS/nixpkgs/2c423e03bbafcff28bfadc6781a4a8257f205cb5"; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 3 | outputs = { self, nixpkgs }: let |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 4 | systems = [ "x86_64-linux" "aarch64-linux" ]; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 5 | forAllSystems = nixpkgs.lib.genAttrs systems; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 6 | packageFor = system: let |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 7 | pkgs = nixpkgs.legacyPackages.${system}; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 8 | in pkgs.rustPlatform.buildRustPackage { |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 9 | pname = "vineyard"; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 10 | version = "0.1.0"; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 11 | src = pkgs.lib.cleanSourceWith { |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 12 | src = ./.; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 13 | filter = path: type: |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 14 | pkgs.lib.cleanSourceFilter path type |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 15 | && !(type == "directory" && builtins.elem (builtins.baseNameOf path) [ "target" ".jj" ".git" ]); |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 16 | }; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 17 | cargoLock.lockFile = ./Cargo.lock; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 18 | doCheck = true; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 19 | }; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 20 | in { |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 21 | nixosModules.default = import ./nix/module.nix self; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 22 | nixosModules.vineyard = self.nixosModules.default; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 23 | packages = forAllSystems (system: { |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 24 | default = packageFor system; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 25 | vineyard = packageFor system; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 26 | }); |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 27 | checks = forAllSystems (system: { |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 28 | vineyard = packageFor system; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 29 | }); |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 30 | devShells = forAllSystems (system: let |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 31 | pkgs = nixpkgs.legacyPackages.${system}; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 32 | in { |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 33 | default = pkgs.mkShell { |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 34 | packages = with pkgs; [ cargo rustc rustfmt clippy pkg-config ]; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 35 | }; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 36 | }); |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 37 | }; |
25d14e49ab68 | atagen | 2026-09-24 11:07 UTC | 38 | } |