liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

default.nix (864B)


      1 {
      2   s6-linux-init
      3 , execline
      4 , writeScript
      5 , stdenvNoCC
      6 , lib
      7 , s6-rc
      8 }:
      9 let
     10   hpr = name: arg: writeScript name ''
     11     #!${execline}/bin/execlineb -S0
     12     ${s6-linux-init}/bin/s6-linux-init-hpr ${arg} \$@
     13   '';
     14   init = writeScript "init" ''
     15     #!${execline}/bin/execlineb -S0
     16     ${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 -- "\$@"
     17   '';
     18 in stdenvNoCC.mkDerivation {
     19   name = "s6-init-bin";
     20   phases = ["installPhase"];
     21   installPhase = ''
     22     bin=$out/bin
     23     mkdir -p $bin
     24     cd $bin
     25     ln -s ${s6-linux-init}/bin/s6-linux-init-shutdown shutdown
     26     ln -s ${s6-linux-init}/bin/s6-linux-init-telinit telinit
     27     ln -s ${hpr "reboot" "-r"} reboot
     28     ln -s ${hpr "poweroff" "-p"} poweroff
     29     ln -s ${hpr "halt" "-h"} halt
     30     ln -s ${init} init
     31   '';
     32 }