e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 1 | { |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 2 | description = "one build at a time, please"; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 3 | |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 4 | inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 5 | |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 6 | outputs = |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 7 | { self, nixpkgs }: |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 8 | let |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 9 | inherit (nixpkgs) lib; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 10 | forAllSystems = lib.genAttrs [ |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 11 | "x86_64-linux" |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 12 | "aarch64-linux" |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 13 | "x86_64-darwin" |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 14 | "aarch64-darwin" |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 15 | ]; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 16 | pkgsFor = system: nixpkgs.legacyPackages.${system}; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 17 | in |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 18 | { |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 19 | packages = forAllSystems ( |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 20 | system: |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 21 | let |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 22 | pkgs = pkgsFor system; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 23 | roundabout = pkgs.callPackage ./nix/package.nix { }; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 24 | in |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 25 | { |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 26 | inherit roundabout; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 27 | default = roundabout; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 28 | plugin = pkgs.callPackage ./nix/plugin.nix { inherit roundabout; }; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 29 | } |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 30 | ); |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 31 | |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 32 | devShells = forAllSystems ( |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 33 | system: |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 34 | let |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 35 | pkgs = pkgsFor system; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 36 | in |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 37 | { |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 38 | default = pkgs.mkShell { |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 39 | packages = [ |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 40 | pkgs.cargo |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 41 | pkgs.rustc |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 42 | pkgs.clippy |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 43 | pkgs.rustfmt |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 44 | pkgs.rust-analyzer |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 45 | ]; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 46 | env.RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}"; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 47 | }; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 48 | } |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 49 | ); |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 50 | |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 51 | checks = forAllSystems ( |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 52 | system: |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 53 | let |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 54 | pkgs = pkgsFor system; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 55 | roundabout = self.packages.${system}.roundabout; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 56 | in |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 57 | { |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 58 | inherit roundabout; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 59 | plugin = self.packages.${system}.plugin; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 60 | clippy = roundabout.overrideAttrs (old: { |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 61 | pname = "roundabout-clippy"; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 62 | nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.clippy ]; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 63 | buildPhase = '' |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 64 | runHook preBuild |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 65 | cargo clippy --offline --all-targets -- -D warnings |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 66 | runHook postBuild |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 67 | ''; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 68 | doCheck = false; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 69 | installPhase = "touch $out"; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 70 | }); |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 71 | fmt = |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 72 | pkgs.runCommand "roundabout-fmt" |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 73 | { |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 74 | nativeBuildInputs = [ |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 75 | pkgs.cargo |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 76 | pkgs.rustfmt |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 77 | ]; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 78 | } |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 79 | '' |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 80 | cd ${self} |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 81 | cargo fmt --check |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 82 | touch $out |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 83 | ''; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 84 | } |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 85 | ); |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 86 | }; |
e50aca5650c2 | atagen | 2026-09-27 03:59 UTC | 87 | } |