on master help sign in
Allow to run an init script on startup.

This allows for example to set specific environment variables, before starting the script without needing to modify the target.

commitb7c5c58cb415b87fb09124a57443822d56a61e29 authorDerek Kulinski <d@kulinski.us> dateThu 28 Apr 2022, 17:22 (4 years ago) parent223f4ff
1 file changed+6−5
default.nix+6−5
default.nix+6−5
@@ -80,19 +80,20 @@ in rec {
8080 };
8181 };
8282
83− makeStartup = { target, nixUserChrootFlags, nix-user-chroot', run }:
83+ makeStartup = { target, nixUserChrootFlags, nix-user-chroot', run, initScript }:
8484 let
8585 # Avoid re-adding a store path into the store
8686 path = toStorePath target;
8787 in
8888 writeScript "startup" ''
8989 #!/bin/sh
90+ ${initScript}
9091 .${nix-user-chroot'}/bin/nix-user-chroot -n ./nix ${nixUserChrootFlags} -- ${path}${run} "$@"
9192 '';
9293
93− nix-bootstrap = { target, extraTargets ? [], run, nix-user-chroot' ? nix-user-chroot, nixUserChrootFlags ? "" }:
94+ nix-bootstrap = { target, extraTargets ? [], run, nix-user-chroot' ? nix-user-chroot, nixUserChrootFlags ? "", initScript ? "" }:
9495 let
95− script = makeStartup { inherit target nixUserChrootFlags nix-user-chroot' run; };
96+ script = makeStartup { inherit target nixUserChrootFlags nix-user-chroot' run initScript; };
9697 in makebootstrap {
9798 startup = ".${script} '\"$@\"'";
9899 targets = [ "${script}" ] ++ extraTargets;
@@ -111,8 +112,8 @@ in rec {
111112 makeFlags = o.makeFlags ++ [
112113 ''ENV_PATH="${lib.makeBinPath targets}"''
113114 ];
114− }); in { target, extraTargets ? [], run }: nix-bootstrap {
115− inherit target extraTargets run;
115+ }); in { target, extraTargets ? [], run, initScript ? "" }: nix-bootstrap {
116+ inherit target extraTargets run initScript;
116117 nix-user-chroot' = nix-user-chroot'' extraTargets;
117118 };
118119}