atagen

jelq

public

an http based roguelike rpg about jelqing

Star0
Watch0
c3e0c27cf8fdc2d547ab080a661ac7ec625ec00b
1
ssh://brewery@pls.lobotomise.me:33/atagen/jelq.git

Blame: flake.nix

a9b016e4b248atagen2026-10-10 08:12 UTC1
{
a9b016e4b248atagen2026-10-10 08:12 UTC2
  description = "jelqd, a roguelike played entirely over HTTP";
a9b016e4b248atagen2026-10-10 08:12 UTC3
a9b016e4b248atagen2026-10-10 08:12 UTC4
  inputs = {
a9b016e4b248atagen2026-10-10 08:12 UTC5
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
a9b016e4b248atagen2026-10-10 08:12 UTC6
    crane.url = "github:ipetkov/crane";
a9b016e4b248atagen2026-10-10 08:12 UTC7
    flake-utils.url = "github:numtide/flake-utils";
a9b016e4b248atagen2026-10-10 08:12 UTC8
  };
a9b016e4b248atagen2026-10-10 08:12 UTC9
a9b016e4b248atagen2026-10-10 08:12 UTC10
  outputs =
a9b016e4b248atagen2026-10-10 08:12 UTC11
    {
a9b016e4b248atagen2026-10-10 08:12 UTC12
      self,
a9b016e4b248atagen2026-10-10 08:12 UTC13
      nixpkgs,
a9b016e4b248atagen2026-10-10 08:12 UTC14
      crane,
a9b016e4b248atagen2026-10-10 08:12 UTC15
      flake-utils,
a9b016e4b248atagen2026-10-10 08:12 UTC16
    }:
a9b016e4b248atagen2026-10-10 08:12 UTC17
    flake-utils.lib.eachDefaultSystem (
a9b016e4b248atagen2026-10-10 08:12 UTC18
      system:
a9b016e4b248atagen2026-10-10 08:12 UTC19
      let
a9b016e4b248atagen2026-10-10 08:12 UTC20
        pkgs = nixpkgs.legacyPackages.${system};
a9b016e4b248atagen2026-10-10 08:12 UTC21
        craneLib = crane.mkLib pkgs;
99524cf9f17catagen2026-10-10 10:53 UTC22
        src = pkgs.lib.cleanSourceWith {
99524cf9f17catagen2026-10-10 10:53 UTC23
          src = ./.;
99524cf9f17catagen2026-10-10 10:53 UTC24
          filter = path: type: pkgs.lib.hasSuffix ".html" path || craneLib.filterCargoSources path type;
99524cf9f17catagen2026-10-10 10:53 UTC25
        };
a9b016e4b248atagen2026-10-10 08:12 UTC26
        commonArgs = {
a9b016e4b248atagen2026-10-10 08:12 UTC27
          inherit src;
a9b016e4b248atagen2026-10-10 08:12 UTC28
          strictDeps = true;
a9b016e4b248atagen2026-10-10 08:12 UTC29
        };
a9b016e4b248atagen2026-10-10 08:12 UTC30
        cargoArtifacts = craneLib.buildDepsOnly commonArgs;
a9b016e4b248atagen2026-10-10 08:12 UTC31
        jelqd = craneLib.buildPackage (
a9b016e4b248atagen2026-10-10 08:12 UTC32
          commonArgs
a9b016e4b248atagen2026-10-10 08:12 UTC33
          // {
a9b016e4b248atagen2026-10-10 08:12 UTC34
            inherit cargoArtifacts;
a9b016e4b248atagen2026-10-10 08:12 UTC35
            meta.mainProgram = "jelqd";
a9b016e4b248atagen2026-10-10 08:12 UTC36
          }
a9b016e4b248atagen2026-10-10 08:12 UTC37
        );
a9b016e4b248atagen2026-10-10 08:12 UTC38
      in
a9b016e4b248atagen2026-10-10 08:12 UTC39
      {
a9b016e4b248atagen2026-10-10 08:12 UTC40
        packages.default = jelqd;
a9b016e4b248atagen2026-10-10 08:12 UTC41
a9b016e4b248atagen2026-10-10 08:12 UTC42
        apps.default = flake-utils.lib.mkApp { drv = jelqd; } // {
a9b016e4b248atagen2026-10-10 08:12 UTC43
          meta.description = "Run the jelqd server";
a9b016e4b248atagen2026-10-10 08:12 UTC44
        };
a9b016e4b248atagen2026-10-10 08:12 UTC45
a9b016e4b248atagen2026-10-10 08:12 UTC46
        checks = {
a9b016e4b248atagen2026-10-10 08:12 UTC47
          inherit jelqd;
a9b016e4b248atagen2026-10-10 08:12 UTC48
          clippy = craneLib.cargoClippy (
a9b016e4b248atagen2026-10-10 08:12 UTC49
            commonArgs
a9b016e4b248atagen2026-10-10 08:12 UTC50
            // {
a9b016e4b248atagen2026-10-10 08:12 UTC51
              inherit cargoArtifacts;
a9b016e4b248atagen2026-10-10 08:12 UTC52
              cargoClippyExtraArgs = "--all-targets -- --deny warnings";
a9b016e4b248atagen2026-10-10 08:12 UTC53
            }
a9b016e4b248atagen2026-10-10 08:12 UTC54
          );
a9b016e4b248atagen2026-10-10 08:12 UTC55
          fmt = craneLib.cargoFmt { inherit src; };
a9b016e4b248atagen2026-10-10 08:12 UTC56
          test = craneLib.cargoTest (commonArgs // { inherit cargoArtifacts; });
a9b016e4b248atagen2026-10-10 08:12 UTC57
        };
a9b016e4b248atagen2026-10-10 08:12 UTC58
a9b016e4b248atagen2026-10-10 08:12 UTC59
        devShells.default = craneLib.devShell {
a9b016e4b248atagen2026-10-10 08:12 UTC60
          checks = self.checks.${system};
dfa38cf4cd4batagen2026-10-10 09:17 UTC61
          packages = [
dfa38cf4cd4batagen2026-10-10 09:17 UTC62
            pkgs.rust-analyzer
dfa38cf4cd4batagen2026-10-10 09:17 UTC63
            pkgs.nushell
dfa38cf4cd4batagen2026-10-10 09:17 UTC64
            pkgs.curl
dfa38cf4cd4batagen2026-10-10 09:17 UTC65
          ];
a9b016e4b248atagen2026-10-10 08:12 UTC66
        };
a9b016e4b248atagen2026-10-10 08:12 UTC67
a9b016e4b248atagen2026-10-10 08:12 UTC68
        formatter = pkgs.nixfmt;
a9b016e4b248atagen2026-10-10 08:12 UTC69
      }
a9b016e4b248atagen2026-10-10 08:12 UTC70
    );
a9b016e4b248atagen2026-10-10 08:12 UTC71
}