summaryrefslogtreecommitdiff
path: root/.local/bin/ttyl
blob: fd71280d897a2742cc3e60896bbd47153fa5f117 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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