diff options
| author | PS <p@0x53.net> | 2026-02-01 12:02:03 +0100 |
|---|---|---|
| committer | PS <p@0x53.net> | 2026-02-01 12:02:03 +0100 |
| commit | 980c5408489a3a3a56e49c3873f1bce6a0155cad (patch) | |
| tree | 91df5fa62e7eca03d04b8ed114b20b337b99a556 /src/bin/prepare-svscan | |
| download | goetia-base-980c5408489a3a3a56e49c3873f1bce6a0155cad.tar.gz goetia-base-980c5408489a3a3a56e49c3873f1bce6a0155cad.tar.bz2 goetia-base-980c5408489a3a3a56e49c3873f1bce6a0155cad.zip | |
version 0.2.0.0
Diffstat (limited to 'src/bin/prepare-svscan')
| -rwxr-xr-x | src/bin/prepare-svscan | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/bin/prepare-svscan b/src/bin/prepare-svscan new file mode 100755 index 0000000..9fe7f8d --- /dev/null +++ b/src/bin/prepare-svscan @@ -0,0 +1,37 @@ +#!@shebangdir@/execlineb -Ws4 + +# ISC license. + +multisubstitute { + define WORKINGDIR ${1} + define RUNDIR ${2} + define BUNDLE ${3} + define PROG ${4} +} + +redirfd -r 0 /dev/null +execline-umask 0022 + +if { mkdir -p -m750 -- ${RUNDIR} } +foreground { cp -RfpL -- ${WORKINGDIR}/run-image/. ${RUNDIR}/ } + +if { mkfifo -m700 ${RUNDIR}/service/s6-svscan-log/fifo } +redirfd -wnb 1 ${RUNDIR}/service/s6-svscan-log/fifo + +background { + redirfd -w 2 ${RUNDIR}/service/s6-svscan-log/fifo + if -x0 -n { eltest -d ${RUNDIR}/s6-rc } + foreground { echo "\ninit!\n" } + if { + s6-rc-init + -c ${WORKINGDIR}/compiled + -l ${RUNDIR}/s6-rc + ${RUNDIR}/service + } + foreground { echo "\nStarting bundle ${BUNDLE}...\n" } + s6-rc -l ${RUNDIR}/s6-rc -v2 -b -t@timeout@ -up change ${BUNDLE} +} +fdmove -c 2 1 + +s6-envdir -I ${WORKINGDIR}/env +${PROG} ${@} |
