Skip to content

Commit

Permalink
flake: add attr minimal to each package
Browse files Browse the repository at this point in the history
This allows conveniently install a rust version with 'minimal' profile
for quick testing via the flake interface.

```
$ nix shell github:oxalica/rust-overlay#rust_1_76_0.minimal
```
  • Loading branch information
oxalica committed Feb 18, 2024
1 parent 2a48e1a commit 5d4170f
Showing 1 changed file with 19 additions and 12 deletions.
31 changes: 19 additions & 12 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -56,27 +56,34 @@
# TODO: Flake outputs except `overlay[s]` are not stabilized yet.

packages = let
select = version: comps: if version == "latest" then null else comps.default or null;
select = version: comps:
if comps ? default then
comps.default // {
minimal = comps.minimal or (throw "missing profile 'minimal' for ${version}");
}
else
null;
result =
mapAttrs' (version: comps: {
name = "rust_${replaceStrings ["."] ["_"] version}";
name = if version == "latest"
then "rust"
else "rust_${replaceStrings ["."] ["_"] version}";
value = select version comps;
}) pkgs.rust-bin.stable //
mapAttrs' (version: comps: {
name = "rust-nightly_${version}";
name = if version == "latest"
then "rust-nightly"
else "rust-nightly_${version}";
value = select version comps;
}) pkgs.rust-bin.nightly //
mapAttrs' (version: comps: {
name = "rust-beta_${version}";
name = if version == "latest"
then "rust-beta"
else "rust-beta_${version}";
value = select version comps;
}) pkgs.rust-bin.beta //
rec {
rust = pkgs.rust-bin.stable.latest.default;
rust-beta = pkgs.rust-bin.beta.latest.default;
rust-nightly = pkgs.rust-bin.nightly.latest.default;
default = rust;
};
in filterAttrs (name: drv: drv != null) result;
}) pkgs.rust-bin.beta;
result' = filterAttrs (name: drv: drv != null) result;
in result' // { default = result'.rust; };

checks = let
inherit (pkgs) rust-bin rustChannelOf;
Expand Down

0 comments on commit 5d4170f

Please sign in to comment.