diff options
Diffstat (limited to 'bin/rcmenu')
| -rwxr-xr-x | bin/rcmenu | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/bin/rcmenu b/bin/rcmenu deleted file mode 100755 index c2a359d..0000000 --- a/bin/rcmenu +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash - -[ -n "$DEBUG" ] && set -x -set -u - -export MENU_PROMPT=" rc" -svdir=/run/s6-rc/servicedirs -rcdir=/etc/s6-rc/src -ico=/usr/share/icons/mdi/scalable/run-fast.svg -menu_exitcode=-1 - -__list() { - ( - find "$svdir" -mindepth 1 -maxdepth 1 -type d -print | - while read -r sv; do - printf "%s " "$(basename "$sv")" - doas -n s6-svstat "$sv" - done - find "$rcdir" -mindepth 1 -maxdepth 1 -type d -print | - while read -r sv; do - if [ -f "$sv/type" ] && grep -q bundle "$sv/type"; then - printf "%s " "$(basename "$sv")" - printf "[bundle] " - printf "contents: " - find "$sv/contents.d/" -type f -exec basename {} \; | xargs | sed 's, ,/,g' - fi - done - ) | column -t -} - -__start() { - local sv=$1 - export msg=$(doas -n s6-rc -v2 -u change "$sv") - export action=start -} -__stop() { - local sv=$1 - export msg=$(doas -n s6-rc -v2 -d change "$sv") - export action=stopp -} -__restart() { - local sv="$1" - local msg - local action - - # bemenu-ism - # if [ $menu_exitcode -eq 18 ]; then - if jq -ncr '{p:"rcmenu",o:[{l:"restart",x:"false"},{l:"stop",x:"true"}]}' | mkmenu; then - __stop "$sv" - else - __stop "$sv" && sleep 0.5 && __start "$sv" - action=restart - fi - - export msg - export action -} - -__handle() { - while read -r line; do - sv=$(printf "%s" "${line}" | awk '{print $1}') - state=$(printf "%s" "${line}" | awk '{print $2}') - - case "$state" in - up | \[bundle\]) __restart "$sv" ;; - down) __start "$sv" ;; - *) - action=noop - msg=$(printf "unknown service state: %s\n" "$state") - false - ;; - esac - - if [ "$?" = 0 ]; then - notify-send -i "${ico}" -a rc "${sv}" "${action}ed" - else - notify-send -i "${ico}" -a rc -u critical -t 30000 "${sv}" "${action}ing ${sv} failed:\n<i>${msg}</i>" - fi - printf "%s\n" "${msg}" - done -} - -case "${1:-}" in --h | --help | help) printf "usage: %s [start|stop|restart] SERVICE\n" "$(basename "$0")" ;; -start) __start "$2" ;; -stop) __stop "$2" ;; -restart) __restart "$2" ;; -*) - svs=$(__list | menu -l10) - menu_exitcode=$? - __handle <<<"$svs" - ;; -esac |