nixos: allow overriding labels with environment variables

This reintroduces a better version of what 2a05368ff3 removed.
This commit is contained in:
Jan Malakhovski 2017-04-01 00:00:00 +00:00
parent 0fd8ce96ac
commit c6d8a58e8d

View File

@ -18,6 +18,24 @@ in
If you ever wanted to influence the labels in your GRUB menu, If you ever wanted to influence the labels in your GRUB menu,
this is the option for you. this is the option for you.
The default is <option>system.nixos.tags</option> separated by
"-" + "-" + <envar>NIXOS_LABEL_VERSION</envar> environment
variable (defaults to the value of
<option>system.nixos.version</option>).
Can be overriden by setting <envar>NIXOS_LABEL</envar>.
Useful for not loosing track of configurations built from different
nixos branches/revisions, e.g.:
<screen>
#!/bin/sh
today=`date +%Y%m%d`
branch=`(cd nixpkgs ; git branch 2>/dev/null | sed -n '/^\* / { s|^\* ||; p; }')`
revision=`(cd nixpkgs ; git rev-parse HEAD)`
export NIXOS_LABEL_VERSION="$today.$branch-''${revision:0:7}"
nixos-rebuild switch</screen>
''; '';
}; };
@ -46,7 +64,9 @@ in
config = { config = {
# This is set here rather than up there so that changing it would # This is set here rather than up there so that changing it would
# not rebuild the manual # not rebuild the manual
system.nixos.label = mkDefault (concatStringsSep "-" (sort (x: y: x < y) cfg.tags) + "-" + cfg.version); system.nixos.label = mkDefault (maybeEnv "NIXOS_LABEL"
(concatStringsSep "-" (sort (x: y: x < y) cfg.tags)
+ "-" + maybeEnv "NIXOS_LABEL_VERSION" cfg.version));
}; };
} }