nous/flake.nix
2025-09-10 22:39:34 +10:00

58 lines
1.2 KiB
Nix

{
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
inputs.systems.url = "github:nix-systems/default-linux";
outputs =
{
self,
nixpkgs,
systems,
}:
let
mkDeps = pkgs: {
dev = getPkgs {
inherit (pkgs)
rust-analyzer
clippy
rustc
cargo
rustfmt
;
};
build = getPkgs {
# rustc + cargo are inherent in rustPlatform
};
};
forAllSystems =
function:
nixpkgs.lib.genAttrs (import systems) (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
function pkgs (mkDeps pkgs)
);
getPkgs = builtins.attrValues;
in
{
devShells = forAllSystems (
pkgs: deps: {
default = pkgs.mkShell {
packages = with deps; dev ++ build;
};
}
);
packages = forAllSystems (
pkgs: deps: {
default =
let
inherit (pkgs.rustPlatform) buildRustPackage;
in
buildRustPackage {
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
};
}
);
};
}