diff options
Diffstat (limited to '.local/bin/ttyl')
-rwxr-xr-x | .local/bin/ttyl | 37 |
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 |