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