liminix

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

default.nix (732B)


      1 # generate s6-rc database,  by generating closure of all
      2 # config.services and calling s6-rc-compile on them
      3 
      4 {
      5   stdenvNoCC
      6 , buildPackages
      7 , closureInfo
      8 , writeText
      9 , services ? []
     10 }:
     11 let closure-info = closureInfo { rootPaths = services; };
     12 in stdenvNoCC.mkDerivation  {
     13   name = "s6-rc-database";
     14   nativeBuildInputs = [buildPackages.s6-rc];
     15   builder = writeText "find-s6-services" ''
     16     source $stdenv/setup
     17     mkdir -p $out
     18     srcs=""
     19     shopt -s nullglob
     20     for i in $(cat  ${closure-info}/store-paths ); do
     21       if test -d $i; then
     22         for j in $i/* ; do
     23           if test -f $j/type ; then
     24             srcs="$srcs $i"
     25           fi
     26         done
     27       fi
     28     done
     29     s6-rc-compile $out/compiled $srcs
     30     '';
     31   }