summaryrefslogtreecommitdiff
path: root/.local/bin/ttyl
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/ttyl')
-rwxr-xr-x.local/bin/ttyl37
1 files changed, 37 insertions, 0 deletions
diff --git a/.local/bin/ttyl b/.local/bin/ttyl
new file mode 100755
index 0000000..fd71280
--- /dev/null
+++ b/.local/bin/ttyl
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+help() {
+ echo "ttyl - tty lock
+
+USAGE:
+ ttyl [OPTION]... [COMMAND]
+
+OPTIONS:
+ -a lock all TTYs
+ (default when no command is passed and terminal is a tty)
+ -c lock current TTY
+ -h show this help message"
+}
+
+err() { printf 'ttyl: %s\n' "$@" >&2; exit 1; }
+
+while getopts 'ach' o; do case "$o" in
+ a) lockall=0 ;;
+ c) lockall=1 ;;
+ h) help >&2; exit ;;
+ *) err "invalid option -- '$OPTARG'" ;;
+esac done
+shift $((OPTIND - 1))
+
+case "$lockall" in
+ 1) lock="vlock" ;;
+ 0) lock="vlock -a" ;;
+ *)
+ case "$(tty)" in
+ /dev/tty[1-7]) lock="vlock -a" ;;
+ *) lock="vlock" ;;
+ esac
+ ;;
+esac
+
+sleep 1 && $@ & $lock