atagen

roundabout

public
Star0
Watch0
052a1a49371c39019ad2acebf23b58977d2fa829
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
    {
052a1a49371catagen2026-09-27 03:59 UTC19
      nixosModules.default = import ./nix/nixos-module.nix self;
052a1a49371catagen2026-09-27 03:59 UTC20
e50aca5650c2atagen2026-09-27 03:59 UTC21
      packages = forAllSystems (
e50aca5650c2atagen2026-09-27 03:59 UTC22
        system:
e50aca5650c2atagen2026-09-27 03:59 UTC23
        let
e50aca5650c2atagen2026-09-27 03:59 UTC24
          pkgs = pkgsFor system;
e50aca5650c2atagen2026-09-27 03:59 UTC25
          roundabout = pkgs.callPackage ./nix/package.nix { };
e50aca5650c2atagen2026-09-27 03:59 UTC26
        in
e50aca5650c2atagen2026-09-27 03:59 UTC27
        {
e50aca5650c2atagen2026-09-27 03:59 UTC28
          inherit roundabout;
e50aca5650c2atagen2026-09-27 03:59 UTC29
          default = roundabout;
e50aca5650c2atagen2026-09-27 03:59 UTC30
          plugin = pkgs.callPackage ./nix/plugin.nix { inherit roundabout; };
e50aca5650c2atagen2026-09-27 03:59 UTC31
        }
e50aca5650c2atagen2026-09-27 03:59 UTC32
      );
e50aca5650c2atagen2026-09-27 03:59 UTC33
e50aca5650c2atagen2026-09-27 03:59 UTC34
      devShells = forAllSystems (
e50aca5650c2atagen2026-09-27 03:59 UTC35
        system:
e50aca5650c2atagen2026-09-27 03:59 UTC36
        let
e50aca5650c2atagen2026-09-27 03:59 UTC37
          pkgs = pkgsFor system;
e50aca5650c2atagen2026-09-27 03:59 UTC38
        in
e50aca5650c2atagen2026-09-27 03:59 UTC39
        {
e50aca5650c2atagen2026-09-27 03:59 UTC40
          default = pkgs.mkShell {
e50aca5650c2atagen2026-09-27 03:59 UTC41
            packages = [
e50aca5650c2atagen2026-09-27 03:59 UTC42
              pkgs.cargo
e50aca5650c2atagen2026-09-27 03:59 UTC43
              pkgs.rustc
e50aca5650c2atagen2026-09-27 03:59 UTC44
              pkgs.clippy
e50aca5650c2atagen2026-09-27 03:59 UTC45
              pkgs.rustfmt
e50aca5650c2atagen2026-09-27 03:59 UTC46
              pkgs.rust-analyzer
e50aca5650c2atagen2026-09-27 03:59 UTC47
            ];
e50aca5650c2atagen2026-09-27 03:59 UTC48
            env.RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}";
e50aca5650c2atagen2026-09-27 03:59 UTC49
          };
e50aca5650c2atagen2026-09-27 03:59 UTC50
        }
e50aca5650c2atagen2026-09-27 03:59 UTC51
      );
e50aca5650c2atagen2026-09-27 03:59 UTC52
e50aca5650c2atagen2026-09-27 03:59 UTC53
      checks = forAllSystems (
e50aca5650c2atagen2026-09-27 03:59 UTC54
        system:
e50aca5650c2atagen2026-09-27 03:59 UTC55
        let
e50aca5650c2atagen2026-09-27 03:59 UTC56
          pkgs = pkgsFor system;
e50aca5650c2atagen2026-09-27 03:59 UTC57
          roundabout = self.packages.${system}.roundabout;
e50aca5650c2atagen2026-09-27 03:59 UTC58
        in
e50aca5650c2atagen2026-09-27 03:59 UTC59
        {
e50aca5650c2atagen2026-09-27 03:59 UTC60
          inherit roundabout;
e50aca5650c2atagen2026-09-27 03:59 UTC61
          plugin = self.packages.${system}.plugin;
e50aca5650c2atagen2026-09-27 03:59 UTC62
          clippy = roundabout.overrideAttrs (old: {
e50aca5650c2atagen2026-09-27 03:59 UTC63
            pname = "roundabout-clippy";
e50aca5650c2atagen2026-09-27 03:59 UTC64
            nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.clippy ];
e50aca5650c2atagen2026-09-27 03:59 UTC65
            buildPhase = ''
e50aca5650c2atagen2026-09-27 03:59 UTC66
              runHook preBuild
e50aca5650c2atagen2026-09-27 03:59 UTC67
              cargo clippy --offline --all-targets -- -D warnings
e50aca5650c2atagen2026-09-27 03:59 UTC68
              runHook postBuild
e50aca5650c2atagen2026-09-27 03:59 UTC69
            '';
e50aca5650c2atagen2026-09-27 03:59 UTC70
            doCheck = false;
e50aca5650c2atagen2026-09-27 03:59 UTC71
            installPhase = "touch $out";
e50aca5650c2atagen2026-09-27 03:59 UTC72
          });
e50aca5650c2atagen2026-09-27 03:59 UTC73
          fmt =
e50aca5650c2atagen2026-09-27 03:59 UTC74
            pkgs.runCommand "roundabout-fmt"
e50aca5650c2atagen2026-09-27 03:59 UTC75
              {
e50aca5650c2atagen2026-09-27 03:59 UTC76
                nativeBuildInputs = [
e50aca5650c2atagen2026-09-27 03:59 UTC77
                  pkgs.cargo
e50aca5650c2atagen2026-09-27 03:59 UTC78
                  pkgs.rustfmt
e50aca5650c2atagen2026-09-27 03:59 UTC79
                ];
e50aca5650c2atagen2026-09-27 03:59 UTC80
              }
e50aca5650c2atagen2026-09-27 03:59 UTC81
              ''
e50aca5650c2atagen2026-09-27 03:59 UTC82
                cd ${self}
e50aca5650c2atagen2026-09-27 03:59 UTC83
                cargo fmt --check
e50aca5650c2atagen2026-09-27 03:59 UTC84
                touch $out
e50aca5650c2atagen2026-09-27 03:59 UTC85
              '';
e50aca5650c2atagen2026-09-27 03:59 UTC86
        }
e50aca5650c2atagen2026-09-27 03:59 UTC87
      );
e50aca5650c2atagen2026-09-27 03:59 UTC88
    };
e50aca5650c2atagen2026-09-27 03:59 UTC89
}