atagen

roundabout

public
Star0
Watch0
93b435e669a5f6986da74da157a887bf25f9007a
1
ssh://brewery@pls.lobotomise.me:33/atagen/roundabout.git

Blame: flake.nix

e50aca5650c2atagen2026-09-27 03:59 UTC1
{
e50aca5650c2atagen2026-09-27 03:59 UTC2
  description = "one build at a time, please";
e50aca5650c2atagen2026-09-27 03:59 UTC3
e50aca5650c2atagen2026-09-27 03:59 UTC4
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
e50aca5650c2atagen2026-09-27 03:59 UTC5
e50aca5650c2atagen2026-09-27 03:59 UTC6
  outputs =
e50aca5650c2atagen2026-09-27 03:59 UTC7
    { self, nixpkgs }:
e50aca5650c2atagen2026-09-27 03:59 UTC8
    let
e50aca5650c2atagen2026-09-27 03:59 UTC9
      inherit (nixpkgs) lib;
e50aca5650c2atagen2026-09-27 03:59 UTC10
      forAllSystems = lib.genAttrs [
e50aca5650c2atagen2026-09-27 03:59 UTC11
        "x86_64-linux"
e50aca5650c2atagen2026-09-27 03:59 UTC12
        "aarch64-linux"
e50aca5650c2atagen2026-09-27 03:59 UTC13
        "x86_64-darwin"
e50aca5650c2atagen2026-09-27 03:59 UTC14
        "aarch64-darwin"
e50aca5650c2atagen2026-09-27 03:59 UTC15
      ];
e50aca5650c2atagen2026-09-27 03:59 UTC16
      pkgsFor = system: nixpkgs.legacyPackages.${system};
e50aca5650c2atagen2026-09-27 03:59 UTC17
    in
e50aca5650c2atagen2026-09-27 03:59 UTC18
    {
e50aca5650c2atagen2026-09-27 03:59 UTC19
      packages = forAllSystems (
e50aca5650c2atagen2026-09-27 03:59 UTC20
        system:
e50aca5650c2atagen2026-09-27 03:59 UTC21
        let
e50aca5650c2atagen2026-09-27 03:59 UTC22
          pkgs = pkgsFor system;
e50aca5650c2atagen2026-09-27 03:59 UTC23
          roundabout = pkgs.callPackage ./nix/package.nix { };
e50aca5650c2atagen2026-09-27 03:59 UTC24
        in
e50aca5650c2atagen2026-09-27 03:59 UTC25
        {
e50aca5650c2atagen2026-09-27 03:59 UTC26
          inherit roundabout;
e50aca5650c2atagen2026-09-27 03:59 UTC27
          default = roundabout;
e50aca5650c2atagen2026-09-27 03:59 UTC28
          plugin = pkgs.callPackage ./nix/plugin.nix { inherit roundabout; };
e50aca5650c2atagen2026-09-27 03:59 UTC29
        }
e50aca5650c2atagen2026-09-27 03:59 UTC30
      );
e50aca5650c2atagen2026-09-27 03:59 UTC31
e50aca5650c2atagen2026-09-27 03:59 UTC32
      devShells = forAllSystems (
e50aca5650c2atagen2026-09-27 03:59 UTC33
        system:
e50aca5650c2atagen2026-09-27 03:59 UTC34
        let
e50aca5650c2atagen2026-09-27 03:59 UTC35
          pkgs = pkgsFor system;
e50aca5650c2atagen2026-09-27 03:59 UTC36
        in
e50aca5650c2atagen2026-09-27 03:59 UTC37
        {
e50aca5650c2atagen2026-09-27 03:59 UTC38
          default = pkgs.mkShell {
e50aca5650c2atagen2026-09-27 03:59 UTC39
            packages = [
e50aca5650c2atagen2026-09-27 03:59 UTC40
              pkgs.cargo
e50aca5650c2atagen2026-09-27 03:59 UTC41
              pkgs.rustc
e50aca5650c2atagen2026-09-27 03:59 UTC42
              pkgs.clippy
e50aca5650c2atagen2026-09-27 03:59 UTC43
              pkgs.rustfmt
e50aca5650c2atagen2026-09-27 03:59 UTC44
              pkgs.rust-analyzer
e50aca5650c2atagen2026-09-27 03:59 UTC45
            ];
e50aca5650c2atagen2026-09-27 03:59 UTC46
            env.RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}";
e50aca5650c2atagen2026-09-27 03:59 UTC47
          };
e50aca5650c2atagen2026-09-27 03:59 UTC48
        }
e50aca5650c2atagen2026-09-27 03:59 UTC49
      );
e50aca5650c2atagen2026-09-27 03:59 UTC50
e50aca5650c2atagen2026-09-27 03:59 UTC51
      checks = forAllSystems (
e50aca5650c2atagen2026-09-27 03:59 UTC52
        system:
e50aca5650c2atagen2026-09-27 03:59 UTC53
        let
e50aca5650c2atagen2026-09-27 03:59 UTC54
          pkgs = pkgsFor system;
e50aca5650c2atagen2026-09-27 03:59 UTC55
          roundabout = self.packages.${system}.roundabout;
e50aca5650c2atagen2026-09-27 03:59 UTC56
        in
e50aca5650c2atagen2026-09-27 03:59 UTC57
        {
e50aca5650c2atagen2026-09-27 03:59 UTC58
          inherit roundabout;
e50aca5650c2atagen2026-09-27 03:59 UTC59
          plugin = self.packages.${system}.plugin;
e50aca5650c2atagen2026-09-27 03:59 UTC60
          clippy = roundabout.overrideAttrs (old: {
e50aca5650c2atagen2026-09-27 03:59 UTC61
            pname = "roundabout-clippy";
e50aca5650c2atagen2026-09-27 03:59 UTC62
            nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.clippy ];
e50aca5650c2atagen2026-09-27 03:59 UTC63
            buildPhase = ''
e50aca5650c2atagen2026-09-27 03:59 UTC64
              runHook preBuild
e50aca5650c2atagen2026-09-27 03:59 UTC65
              cargo clippy --offline --all-targets -- -D warnings
e50aca5650c2atagen2026-09-27 03:59 UTC66
              runHook postBuild
e50aca5650c2atagen2026-09-27 03:59 UTC67
            '';
e50aca5650c2atagen2026-09-27 03:59 UTC68
            doCheck = false;
e50aca5650c2atagen2026-09-27 03:59 UTC69
            installPhase = "touch $out";
e50aca5650c2atagen2026-09-27 03:59 UTC70
          });
e50aca5650c2atagen2026-09-27 03:59 UTC71
          fmt =
e50aca5650c2atagen2026-09-27 03:59 UTC72
            pkgs.runCommand "roundabout-fmt"
e50aca5650c2atagen2026-09-27 03:59 UTC73
              {
e50aca5650c2atagen2026-09-27 03:59 UTC74
                nativeBuildInputs = [
e50aca5650c2atagen2026-09-27 03:59 UTC75
                  pkgs.cargo
e50aca5650c2atagen2026-09-27 03:59 UTC76
                  pkgs.rustfmt
e50aca5650c2atagen2026-09-27 03:59 UTC77
                ];
e50aca5650c2atagen2026-09-27 03:59 UTC78
              }
e50aca5650c2atagen2026-09-27 03:59 UTC79
              ''
e50aca5650c2atagen2026-09-27 03:59 UTC80
                cd ${self}
e50aca5650c2atagen2026-09-27 03:59 UTC81
                cargo fmt --check
e50aca5650c2atagen2026-09-27 03:59 UTC82
                touch $out
e50aca5650c2atagen2026-09-27 03:59 UTC83
              '';
e50aca5650c2atagen2026-09-27 03:59 UTC84
        }
e50aca5650c2atagen2026-09-27 03:59 UTC85
      );
e50aca5650c2atagen2026-09-27 03:59 UTC86
    };
e50aca5650c2atagen2026-09-27 03:59 UTC87
}