summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorNathan Zadoks <nathan@nathan7.eu>2016-01-19 18:11:36 +0100
committerNathan Zadoks <nathan@nathan7.eu>2016-01-19 23:29:48 +0100
commitdf82096af06deaa8ddd53accaaa488474575b6d6 (patch)
tree0a40e36ebe5a5565c123f42c5d12bbd97f46c811 /nixos
parente67717bc8d545c593f974163a8a496f5f898b73d (diff)
downloadnixlib-df82096af06deaa8ddd53accaaa488474575b6d6.tar
nixlib-df82096af06deaa8ddd53accaaa488474575b6d6.tar.gz
nixlib-df82096af06deaa8ddd53accaaa488474575b6d6.tar.bz2
nixlib-df82096af06deaa8ddd53accaaa488474575b6d6.tar.lz
nixlib-df82096af06deaa8ddd53accaaa488474575b6d6.tar.xz
nixlib-df82096af06deaa8ddd53accaaa488474575b6d6.tar.zst
nixlib-df82096af06deaa8ddd53accaaa488474575b6d6.zip
activation-script module: add environment.usrbinenv option
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/system/activation/activation-script.nix22
1 files changed, 19 insertions, 3 deletions
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index 02b3e25a313d..d78ec0d7bf3d 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -94,6 +94,18 @@ in
 
     };
 
+    environment.usrbinenv = mkOption {
+      default = "${pkgs.coreutils}/bin/env";
+      example = literalExample ''
+        "''${pkgs.busybox}/bin/env"
+      '';
+      type = types.nullOr types.path;
+      visible = false;
+      description = ''
+        The env(1) executable that is linked system-wide to
+        <literal>/usr/bin/env</literal>.
+      '';
+    };
   };
 
 
@@ -128,11 +140,15 @@ in
         mkdir -m 0555 -p /var/empty
       '';
 
-    system.activationScripts.usrbinenv =
-      ''
+    system.activationScripts.usrbinenv = if config.environment.usrbinenv != null
+      then ''
         mkdir -m 0755 -p /usr/bin
-        ln -sfn ${pkgs.coreutils}/bin/env /usr/bin/.env.tmp
+        ln -sfn ${config.environment.usrbinenv} /usr/bin/.env.tmp
         mv /usr/bin/.env.tmp /usr/bin/env # atomically replace /usr/bin/env
+      ''
+      else ''
+        rm -f /usr/bin/env
+        rmdir --ignore-fail-on-non-empty /usr/bin /usr
       '';
 
     system.activationScripts.tmpfs =