atagen

vineyard

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