summary refs log tree commit diff
path: root/nixos/modules/misc/version.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/misc/version.nix')
-rw-r--r--nixos/modules/misc/version.nix55
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";
+      };
+
+  };
+
+}