summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/swkill36
-rwxr-xr-xbin/swq4
2 files changed, 40 insertions, 0 deletions
diff --git a/bin/swkill b/bin/swkill
new file mode 100755
index 0000000..9a4a9ab
--- /dev/null
+++ b/bin/swkill
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# DESCRIPTION:
+#  kill the processes behind the containers returned by the `swq` query
+#
+
+set -e
+[ -n "$DEBUG" ] && set -x
+
+# check requirements
+for tool in jq swq; do
+				if ! command -v "$tool" >/dev/null; then
+								printf "%s: %s not installed but required\n" "$(basename "$0")" "$tool" >&2
+								exit 1
+				fi
+done
+
+if [ "$1" = "-y" ]; then
+	shift
+	noninteractive=1
+fi
+
+sel="$*"
+if [ -z "$sel" ]; then
+	sel="current workspace"
+fi
+
+swq "$sel" | jq '.. | select(.pid?) | .name'
+
+if [ -z "$noninteractive" ]; then
+	{ sleep 10 && kill $$; } &
+	printf "kill? (you have 10s) "
+	read -r
+fi
+
+swq "$sel" | jq '.. | select(.pid?) | .pid' | xargs kill
diff --git a/bin/swq b/bin/swq
index 85f11a7..11128ee 100755
--- a/bin/swq
+++ b/bin/swq
@@ -1,4 +1,8 @@
 #!/usr/bin/env bash
+#
+# DESCRIPTION:
+#  convenience queries into the sway container tree
+#
 
 swtree()
 {