summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2021-11-02 18:48:35 +0100
committerRobert Günzler <r@gnzler.io>2021-11-02 19:06:52 +0100
commitdd32b69d2d94711e08ecfd276a0e58b6dd852c1f (patch)
tree9967eace0d6ea7d65fb24ae28a9f32cd0352dd2a /bin
parent2467ffc06ef0b2aacd4a4d50658f9637afd8f27c (diff)
bin: add s6menu
Diffstat (limited to 'bin')
-rwxr-xr-xbin/s6menu32
1 files changed, 32 insertions, 0 deletions
diff --git a/bin/s6menu b/bin/s6menu
new file mode 100755
index 0000000..3d1bf05
--- /dev/null
+++ b/bin/s6menu
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -e
+[ -n "$DEBUG" ] && set -x
+
+export MENU_PROMPT="󰑮 s6"
+svdir="${HOME}/.local/share/s6"
+
+handle() {
+	while read -r sv; do
+		isup=$(s6-svstat -o up "${svdir}/${sv}")
+
+		if [ "${isup}" = "true" ]; then
+			act=restart
+			s6-svc -r "${svdir}/${sv}"
+		else
+			act=stopp
+			s6-svc -u "${svdir}/${sv}"
+		fi
+		if [ $? = 0 ]; then
+			notify-send -i /usr/share/icons/mdi/scalable/run-fast.svg -a s6 s6 "${act}ed ${sv}"
+		else
+			notify-send -i /usr/share/icons/mdi/scalable/run-fast.svg -a s6 -u critical -t 30000 s6 "${act}ing ${sv} failed"
+		fi
+	done
+}
+
+fd -t d -d 1 . "${svdir}" |
+	sed -e "s#${svdir}/##" |
+	awk '{printf "%25s\t%s\n", $1, $3}' |
+	menu --list=10 |
+	handle