diff options
| author | Robert Günzler <r@gnzler.io> | 2023-09-25 11:56:34 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2023-09-25 11:56:34 +0200 |
| commit | f5c219983c0f60a07f1bd52b6f6071e86f35455e (patch) | |
| tree | b7520a02b9822481f29aea4ccb404744a73414b1 /os/etc/s6-rc/reload | |
| parent | 91ba318df1ff9b04d08af373ae904f61a91bf489 (diff) | |
add os config
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'os/etc/s6-rc/reload')
| -rwxr-xr-x | os/etc/s6-rc/reload | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/os/etc/s6-rc/reload b/os/etc/s6-rc/reload new file mode 100755 index 0000000..16f288d --- /dev/null +++ b/os/etc/s6-rc/reload @@ -0,0 +1,34 @@ +#!/bin/sh +[ -n "$DEBUG" ] && set -x +set -eu + +. /lib/gentoo/functions.sh + +old=$(find /etc/s6-rc/ -maxdepth 1 -name '_[0-9]*' -print) + +if [ "$UID" -ne 0 ]; then + EERROR_QUIET=0 EINFO_LOG=0 eerror "need to be root" + exit 1 +fi + +name=_$(date +%s) +ebegin "compile new db" +s6-rc-compile /etc/s6-rc/"$name" /etc/s6-rc/src +eend + +# refresh active s6-rc tree +if s6-rc -a list >/dev/null 2>&1; then + ebegin "update current db" + s6-rc-update -v2 /etc/s6-rc/"$name" + eend +fi + +ebegin "swap current db" +# make atomic +ln -sf /etc/s6-rc/$name /tmp/compiled +mv -f /tmp/compiled /etc/s6-rc/ +eend + +ebegin "cleanup old db" +rm -r $old >/dev/null 2>&1 +eend |