liminix

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

default.nix (930B)


      1 {
      2   s6-linux-init,
      3   execline,
      4   writeScript,
      5   stdenvNoCC,
      6   lib,
      7   s6-rc,
      8 }:
      9 let
     10   hpr =
     11     name: arg:
     12     writeScript name ''
     13       #!${execline}/bin/execlineb -S0
     14       ${s6-linux-init}/bin/s6-linux-init-hpr ${arg} \$@
     15     '';
     16   init = writeScript "init" ''
     17     #!${execline}/bin/execlineb -S0
     18     ${s6-linux-init}/bin/s6-linux-init -c /etc/s6-linux-init/current -m 0022 -p ${
     19       lib.makeBinPath [
     20         execline
     21         s6-linux-init
     22         s6-rc
     23       ]
     24     }:/usr/bin:/bin -d /dev -- "\$@"
     25   '';
     26 in
     27 stdenvNoCC.mkDerivation {
     28   name = "s6-init-bin";
     29   phases = [ "installPhase" ];
     30   installPhase = ''
     31     bin=$out/bin
     32     mkdir -p $bin
     33     cd $bin
     34     ln -s ${s6-linux-init}/bin/s6-linux-init-shutdown shutdown
     35     ln -s ${s6-linux-init}/bin/s6-linux-init-telinit telinit
     36     ln -s ${hpr "reboot" "-r"} reboot
     37     ln -s ${hpr "poweroff" "-p"} poweroff
     38     ln -s ${hpr "halt" "-h"} halt
     39     ln -s ${init} init
     40   '';
     41 }