summaryrefslogtreecommitdiff
path: root/modules/system
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2016-12-14 12:32:20 +0100
committerDaiderd Jordan <daiderd@gmail.com>2016-12-14 12:32:20 +0100
commit6af52615ed8de2c4f9f4a30d97a22f7b3513c474 (patch)
treea3fcc497eb1416b4958a8638a587890b45ac7569 /modules/system
parent7a6ee11373e37dc425a0a4552e9b6254a432358c (diff)
add activate-user script
Diffstat (limited to 'modules/system')
-rw-r--r--modules/system/activation-scripts.nix20
-rw-r--r--modules/system/default.nix6
2 files changed, 25 insertions, 1 deletions
diff --git a/modules/system/activation-scripts.nix b/modules/system/activation-scripts.nix
index 2695e54..6f22d45 100644
--- a/modules/system/activation-scripts.nix
+++ b/modules/system/activation-scripts.nix
@@ -59,12 +59,30 @@ in
# Prevent the current configuration from being garbage-collected.
ln -sfn /run/current-system /nix/var/nix/gcroots/current-system
- ${cfg.activationScripts.defaults.text}
${cfg.activationScripts.etc.text}
${cfg.activationScripts.launchd.text}
exit $_status
'';
+ system.activationScripts.userScript.text = ''
+ #! ${stdenv.shell}
+ set -e
+ set -o pipefail
+ export PATH=${pkgs.coreutils}/bin:${config.environment.systemPath}:$PATH
+
+ systemConfig=@out@
+
+ _status=0
+ trap "_status=1" ERR
+
+ # Ensure a consistent umask.
+ umask 0022
+
+ ${cfg.activationScripts.defaults.text}
+
+ exit $_status
+ '';
+
};
}
diff --git a/modules/system/default.nix b/modules/system/default.nix
index f4b82d7..0e659bb 100644
--- a/modules/system/default.nix
+++ b/modules/system/default.nix
@@ -51,6 +51,7 @@ in
preferLocalBuild = true;
activationScript = cfg.activationScripts.script.text;
+ activationUserScript = cfg.activationScripts.userScript.text;
inherit (cfg) nixdarwinLabel;
buildCommand = ''
@@ -69,6 +70,11 @@ in
chmod u+x $out/activate
unset activationScript
+ echo "$activationUserScript" > $out/activate-user
+ substituteInPlace $out/activate-user --subst-var out
+ chmod u+x $out/activate-user
+ unset activationUserScript
+
echo -n "$systemConfig" > $out/systemConfig
echo -n "$nixdarwinLabel" > $out/nixdarwin-version