diff options
Diffstat (limited to 'nixos/modules/misc/version.nix')
-rw-r--r-- | nixos/modules/misc/version.nix | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix new file mode 100644 index 00000000000..20a03b44a2a --- /dev/null +++ b/nixos/modules/misc/version.nix @@ -0,0 +1,55 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +{ + + options = { + + system.nixosVersion = mkOption { + type = types.uniq types.string; + description = "NixOS version."; + }; + + system.nixosVersionSuffix = mkOption { + type = types.uniq types.string; + description = "NixOS version suffix."; + }; + + system.nixosCodeName = mkOption { + type = types.uniq types.string; + description = "NixOS release code name."; + }; + + }; + + config = { + + system.nixosVersion = + mkDefault (builtins.readFile ../../.version + config.system.nixosVersionSuffix); + + system.nixosVersionSuffix = + mkDefault (if builtins.pathExists ../../.version-suffix then builtins.readFile ../../.version-suffix else "pre-git"); + + # Note: code names must only increase in alphabetical order. + system.nixosCodeName = "Aardvark"; + + # Generate /etc/os-release. See + # http://0pointer.de/public/systemd-man/os-release.html for the + # format. + environment.etc = singleton + { source = pkgs.writeText "os-release" + '' + NAME=NixOS + ID=nixos + VERSION="${config.system.nixosVersion} (${config.system.nixosCodeName})" + VERSION_ID="${config.system.nixosVersion}" + PRETTY_NAME="NixOS ${config.system.nixosVersion} (${config.system.nixosCodeName})" + HOME_URL="http://nixos.org/" + ''; + target = "os-release"; + }; + + }; + +} |