aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/longrun-make
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/longrun-make')
-rwxr-xr-xsrc/bin/longrun-make36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/bin/longrun-make b/src/bin/longrun-make
new file mode 100755
index 0000000..2b5b433
--- /dev/null
+++ b/src/bin/longrun-make
@@ -0,0 +1,36 @@
+#!@shebangdir@/execlineb -WS5
+
+# ISC license.
+
+multisubstitute {
+ define WORKINGDIR ${1}
+ define NAME ${2}
+ define TYPE ${3}
+ define SCRIPT ${4}
+ define DEPENDENCIES ${5}
+}
+
+if { mkdir -p ${WORKINGDIR}/${NAME}-${TYPE} }
+
+background {
+ if { eltest ${TYPE} = log }
+ s6-setlock ${WORKINGDIR}/${NAME}-log/consumer-for
+ if -n { grep -Fq -- ${NAME}-srv ${WORKINGDIR}/${NAME}-log/consumer-for }
+ background { redirfd -a 1 ${WORKINGDIR}/${NAME}-log/consumer-for echo ${NAME}-srv }
+ background { redirfd -w 1 ${WORKINGDIR}/${NAME}-log/pipeline-name echo ${NAME} }
+}
+
+background {
+ if { eltest ${TYPE} = srv }
+ redirfd -w 1 ${WORKINGDIR}/${NAME}-srv/producer-for echo ${NAME}-log
+}
+
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}-${TYPE}/type echo longrun }
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}-${TYPE}/notification-fd echo 3 }
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}-${TYPE}/run echo ${SCRIPT} }
+background {
+ if { eltest ${DEPENDENCIES} != none }
+ define -s SPLITDEPENDENCIES ${DEPENDENCIES}
+ if { mkdir -p ${WORKINGDIR}/${NAME}-${TYPE}/dependencies.d }
+ touch ${WORKINGDIR}/${NAME}-${TYPE}/dependencies.d/${SPLITDEPENDENCIES}
+}