/ nix / package.nix
package.nix
 1  {
 2    crane,
 3    lib,
 4    pkgs,
 5    ...
 6  }:
 7  
 8  let
 9    craneLib = crane.mkLib pkgs;
10  
11    commonArgs = {
12      src = lib.fileset.toSource {
13        root = ../.;
14        fileset = lib.fileset.unions [
15          ../Cargo.lock
16          ../Cargo.toml
17          ../src
18          ../config.toml
19          ../users.toml
20        ];
21      };
22  
23      cargoArtifacts = craneLib.buildDepsOnly (
24        commonArgs
25        // {
26          src = lib.fileset.toSource {
27            root = ../.;
28            fileset = lib.fileset.unions [ ../Cargo.lock ];
29          };
30        }
31      );
32    };
33  in
34  
35  craneLib.buildPackage (
36    commonArgs
37    // {
38      passthru.clippy = craneLib.cargoClippy (
39        commonArgs // { cargoClippyExtraArgs = "--all-targets -- --deny warnings"; }
40      );
41  
42      meta = {
43        description = "Matrix bot for Advent of Code";
44        homepage = "https://radicle.defelo.de/nodes/radicle.defelo.de/rad:zT8xLU95EPRhK1MJDtYKae8PNwjC";
45        license = lib.licenses.mit;
46        mainProgram = "aocbot";
47        maintainers = with lib.maintainers; [ defelo ];
48      };
49    }
50  )