summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/pure/distros.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/pure/distros.nim b/lib/pure/distros.nim
index 9e3d41026..033543c3a 100644
--- a/lib/pure/distros.nim
+++ b/lib/pure/distros.nim
@@ -29,6 +29,7 @@ from strutils import contains, toLowerAscii
 
 when not defined(nimscript):
   from osproc import execProcess
+  from os import existsEnv
 
 type
   Distribution* {.pure.} = enum ## the list of known distributions
@@ -105,7 +106,7 @@ type
     Clonezilla
     SteamOS
     Absolute
-    NixOS
+    NixOS ## NixOS or a Nix build environment
     AUSTRUMI
     Arya
     Porteus
@@ -161,6 +162,9 @@ proc detectOsImpl(d: Distribution): bool =
   of Distribution.BSD: result = defined(bsd)
   of Distribution.ArchLinux:
     result = "arch" in toLowerAscii(uname())
+  of Distribution.NixOS:
+    result = existsEnv("NIX_BUILD_TOP") or existsEnv("__NIXOS_SET_ENVIRONMENT_DONE")
+    # Check if this is a Nix build or NixOS environment
   of Distribution.OpenSUSE:
     result = "suse" in toLowerAscii(uname()) or "suse" in toLowerAscii(release())
   of Distribution.GoboLinux: