froxy/flake.nix
2026-02-06 23:23:27 +01:00

41 lines
1.1 KiB
Nix

{
description = "A basic flake with a shell";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay.url = "github:oxalica/rust-overlay";
cargo-workspace.url = "github:maix-flake/cargo-ws";
};
outputs = {
self,
nixpkgs,
flake-utils,
rust-overlay,
...
} @ inputs:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {
inherit system;
overlays = [(import rust-overlay)];
};
packageIf = name: packageDef:
if builtins.hasAttr name inputs
then [(packageDef inputs.${name})]
else [];
in {
devShell = let
rust_bin =
pkgs.rust-bin.stable.latest.default;
in
pkgs.mkShell {
packages =
[rust_bin]
++ (packageIf "cargo-semver-checks" (p: p.packages.${system}.default))
++ (packageIf "cargo-workspace" (p: p.packages.${system}.default));
shellHook = ''
export RUST_STD="${rust_bin}/share/doc/rust/html/std/index.html"
'';
};
});
}