summary refs log tree commit diff
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2023-01-04 18:14:12 +0100
committerlassulus <lassulus@lassul.us>2023-01-04 19:11:41 +0100
commit5464e0a0182603b13d9d8779bffb417e01b1273f (patch)
tree1a8fdb5784b96a601ed2f3828ac87d343be99939
parent60ad423963e839838c72cd7a299eed0bf1ca00ff (diff)
downloadnixpkgs-5464e0a0182603b13d9d8779bffb417e01b1273f.tar
nixpkgs-5464e0a0182603b13d9d8779bffb417e01b1273f.tar.gz
nixpkgs-5464e0a0182603b13d9d8779bffb417e01b1273f.tar.bz2
nixpkgs-5464e0a0182603b13d9d8779bffb417e01b1273f.tar.lz
nixpkgs-5464e0a0182603b13d9d8779bffb417e01b1273f.tar.xz
nixpkgs-5464e0a0182603b13d9d8779bffb417e01b1273f.tar.zst
nixpkgs-5464e0a0182603b13d9d8779bffb417e01b1273f.zip
nixos/misc: add VARIANT_ID in /etc/os-release for identifying nixos installer
This is a feature useful for nixos-remote and other installation tools
that try to identify if the remote machine has been successfully booted
into an installer.
-rw-r--r--nixos/modules/misc/version.nix9
-rw-r--r--nixos/modules/profiles/installation-device.nix1
2 files changed, 10 insertions, 0 deletions
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 1067b21a22b..c9e06382b7a 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -28,6 +28,8 @@ let
     DOCUMENTATION_URL = "https://nixos.org/learn.html";
     SUPPORT_URL = "https://nixos.org/community.html";
     BUG_REPORT_URL = "https://github.com/NixOS/nixpkgs/issues";
+  } // lib.optionalAttrs (cfg.variant_id != null) {
+    VARIANT_ID = cfg.variant_id;
   };
 
   initrdReleaseContents = osReleaseContents // {
@@ -87,6 +89,13 @@ in
       description = lib.mdDoc "The NixOS release code name (e.g. `Emu`).";
     };
 
+    nixos.variant_id = mkOption {
+      type = types.nullOr (types.strMatching "^[a-z0-9._-]+$");
+      default = null;
+      description = lib.mdDoc "A lower-case string identifying a specific variant or edition of the operating system";
+      example = "installer";
+    };
+
     stateVersion = mkOption {
       type = types.str;
       # TODO Remove this and drop the default of the option so people are forced to set it.
diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix
index ae9be08c8d8..4d9bd69666c 100644
--- a/nixos/modules/profiles/installation-device.nix
+++ b/nixos/modules/profiles/installation-device.nix
@@ -20,6 +20,7 @@ with lib;
     ];
 
   config = {
+    system.nixos.variant_id = lib.mkDefault "installer";
 
     # Enable in installer, even if the minimal profile disables it.
     documentation.enable = mkImageMediaOverride true;