atagen

jelq

public

an http based roguelike rpg about jelqing

Star0
Watch0
177535ac8abf29d1d6eaa1bd35a72ae370329b5f
1
ssh://brewery@pls.lobotomise.me:33/atagen/jelq.git
flake.nixNix68 lines1.7 KB
1
{
2
  description = "jelqd, a roguelike played entirely over HTTP";
3
4
  inputs = {
5
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
    crane.url = "github:ipetkov/crane";
7
    flake-utils.url = "github:numtide/flake-utils";
8
  };
9
10
  outputs =
11
    {
12
      self,
13
      nixpkgs,
14
      crane,
15
      flake-utils,
16
    }:
17
    flake-utils.lib.eachDefaultSystem (
18
      system:
19
      let
20
        pkgs = nixpkgs.legacyPackages.${system};
21
        craneLib = crane.mkLib pkgs;
22
        src = craneLib.cleanCargoSource ./.;
23
        commonArgs = {
24
          inherit src;
25
          strictDeps = true;
26
        };
27
        cargoArtifacts = craneLib.buildDepsOnly commonArgs;
28
        jelqd = craneLib.buildPackage (
29
          commonArgs
30
          // {
31
            inherit cargoArtifacts;
32
            meta.mainProgram = "jelqd";
33
          }
34
        );
35
      in
36
      {
37
        packages.default = jelqd;
38
39
        apps.default = flake-utils.lib.mkApp { drv = jelqd; } // {
40
          meta.description = "Run the jelqd server";
41
        };
42
43
        checks = {
44
          inherit jelqd;
45
          clippy = craneLib.cargoClippy (
46
            commonArgs
47
            // {
48
              inherit cargoArtifacts;
49
              cargoClippyExtraArgs = "--all-targets -- --deny warnings";
50
            }
51
          );
52
          fmt = craneLib.cargoFmt { inherit src; };
53
          test = craneLib.cargoTest (commonArgs // { inherit cargoArtifacts; });
54
        };
55
56
        devShells.default = craneLib.devShell {
57
          checks = self.checks.${system};
58
          packages = [
59
            pkgs.rust-analyzer
60
            pkgs.nushell
61
            pkgs.curl
62
          ];
63
        };
64
65
        formatter = pkgs.nixfmt;
66
      }
67
    );
68
}