2
0
Files
liminix/pkgs/s6-init-bin/default.nix
T

42 lines
930 B
Nix
Raw Normal View History

2022-09-26 14:13:23 +01:00
{
2024-06-30 16:58:29 +01:00
s6-linux-init,
execline,
writeScript,
stdenvNoCC,
lib,
s6-rc,
2022-09-26 14:13:23 +01:00
}:
let
2025-02-10 21:55:08 +00:00
hpr =
name: arg:
writeScript name ''
#!${execline}/bin/execlineb -S0
${s6-linux-init}/bin/s6-linux-init-hpr ${arg} \$@
'';
2022-09-26 14:13:23 +01:00
init = writeScript "init" ''
#!${execline}/bin/execlineb -S0
2025-02-10 21:55:08 +00:00
${s6-linux-init}/bin/s6-linux-init -c /etc/s6-linux-init/current -m 0022 -p ${
lib.makeBinPath [
execline
s6-linux-init
s6-rc
]
}:/usr/bin:/bin -d /dev -- "\$@"
2022-09-26 14:13:23 +01:00
'';
2025-02-10 21:55:08 +00:00
in
stdenvNoCC.mkDerivation {
2022-09-26 14:13:23 +01:00
name = "s6-init-bin";
2025-02-10 21:55:08 +00:00
phases = [ "installPhase" ];
2022-09-26 14:13:23 +01:00
installPhase = ''
bin=$out/bin
mkdir -p $bin
cd $bin
ln -s ${s6-linux-init}/bin/s6-linux-init-shutdown shutdown
ln -s ${s6-linux-init}/bin/s6-linux-init-telinit telinit
ln -s ${hpr "reboot" "-r"} reboot
ln -s ${hpr "poweroff" "-p"} poweroff
ln -s ${hpr "halt" "-h"} halt
ln -s ${init} init
'';
}