1
0
liminix/pkgs/liminix-tools/services/builder.sh
Daniel Barlow e6ca5ea064 store derivations not just names for service deps
.. also controllers, contents. This is to make it possible (easier)
to work out transitive dependencies at build time
2024-06-11 14:01:06 +01:00

28 lines
962 B
Bash

source $stdenv/setup
mkdir -p $out/${name}
echo $serviceType > $out/${name}/type
mkdir -p $out/${name}/dependencies.d
echo $buildInputs > $out/buildInputs
test -n "$dependencies" && for path in $dependencies; do
d=$(dirname $(cd ${path} && ls -d */type))
touch $out/${name}/dependencies.d/$d
done
test -n "$contents" && for path in $contents; do
d=$(dirname $(cd ${path} && ls -d */type))
mkdir -p $out/${name}/contents.d
touch $out/${name}/contents.d/$d
done
if test -n "$controller" ; then
d=$(dirname $(cd ${controller} && ls -d */type))
echo "$d)" > $out/${name}/controller
fi
for i in timeout-up timeout-down run notification-fd up down finish consumer-for producer-for pipeline-name restart-on-upgrade; do
test -n "$(printenv $i)" && (echo "$(printenv $i)" > $out/${name}/$i)
done
( cd $out && ln -s /run/services/outputs/${name} ./.outputs )
for i in $out/${name}/{down,up,run} ; do test -f $i && chmod +x $i; done
true