diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2022-05-19 13:04:37 +0200 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2022-05-19 13:04:37 +0200 |
commit | 8885850cab6cecf83d65ff7233677827e16762fa (patch) | |
tree | df7fa2f9aebfb1a3dc40facd7a63cf3922fcefa1 /tests/bin | |
parent | bc01f011019828ffda721ba2078ee75f216e4ae7 (diff) | |
download | alpine-conf-8885850cab6cecf83d65ff7233677827e16762fa.zip |
tests: add fake rc-update binary
and add tests for it to verify that it actually works as expected
We can use this for the other tests later
Diffstat (limited to 'tests/bin')
-rwxr-xr-x | tests/bin/rc-update | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/bin/rc-update b/tests/bin/rc-update new file mode 100755 index 0000000..cb7ee36 --- /dev/null +++ b/tests/bin/rc-update @@ -0,0 +1,67 @@ +#!/bin/sh + +prog=$0 +usage() { + echo "usage: rc-update [--quiet] add|del|delete SVC RUNLEVEL" + exit $1 +} + +msg() { + if ! [ -n "$quiet" ]; then + echo "$@" + fi +} + +OPTS=$(getopt -l quiet,help -o "qh" -n $prog -- "$@") || usage "1" >&2 + +quiet= +eval set -- "$OPTS" +for opt; do + case "$opt" in + -h|--help) + usage 0 + ;; + --quiet) + quiet=1 + ;; + --) + shift + break + ;; + *) usage "1" >&2 + ;; + esac + shift +done + +cmd="$1" +svc="$2" +runlevel="${3:-default}" + +if [ -z "$cmd" ] || [ -z "$svc" ]; then + usage "1" >&2 +fi + +case "$cmd" in + add) + if [ -L "$ROOT"/etc/runlevels/$runlevel/$svc ]; then + msg " * rc-update: $svc already installed in runlevel \`$runlevel'; skipping" + exit 0 + fi + mkdir -p "$ROOT"/etc/runlevels/$runlevel + ln -sf ../../init.d/$svc "$ROOT"/etc/runlevels/$runlevel/$svc + msg " * service $svc added to runlevel $runlevel" + ;; + del|delete) + if ! [ -L "$ROOT"/etc/runlevels/$runlevel/$svc ]; then + msg " * rc-update: service \`$svc' is not in the runlevel \`$runlevel'" >&2 + exit 1 + fi + rm "$ROOT"/etc/runlevels/$runlevel/$svc + msg " * service foo removed from runlevel $runlevel" + ;; + *) usage "1" >&2 + ;; +esac + + |