diff options
Diffstat (limited to 'nixos/modules/misc/version.nix')
-rw-r--r-- | nixos/modules/misc/version.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix new file mode 100644 index 000000000000..2fa95563e9ab --- /dev/null +++ b/nixos/modules/misc/version.nix @@ -0,0 +1,73 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +{ + + options = { + + system.nixosVersion = mkOption { + internal = true; + type = types.str; + description = "NixOS version."; + }; + + system.nixosVersionSuffix = mkOption { + internal = true; + type = types.str; + description = "NixOS version suffix."; + }; + + system.nixosRevision = mkOption { + internal = true; + type = types.str; + description = "NixOS Git revision hash."; + }; + + system.nixosCodeName = mkOption { + internal = true; + type = types.str; + description = "NixOS release code name."; + }; + + system.defaultChannel = mkOption { + internal = true; + type = types.str; + default = https://nixos.org/channels/nixos-unstable; + description = "Default NixOS channel to which the root user is subscribed."; + }; + + }; + + config = { + + system.nixosVersion = + mkDefault (readFile "${toString pkgs.path}/.version" + config.system.nixosVersionSuffix); + + system.nixosVersionSuffix = + let suffixFile = "${toString pkgs.path}/.version-suffix"; in + mkDefault (if pathExists suffixFile then readFile suffixFile else "pre-git"); + + system.nixosRevision = + let fn = "${toString pkgs.path}/.git-revision"; in + mkDefault (if pathExists fn then readFile fn else "master"); + + # 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."os-release".text = + '' + 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/" + ''; + + }; + +} |