aboutsummaryrefslogtreecommitdiff
path: root/elk.hook
blob: 14fcb0e4844a1dedd1d8c7e064086d5fa29c7ddc (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
38
39
40
41
42
43
44
45
46
47
48
#!/bin/sh

run_hook() {
	echo '▄▄▄▄▄▄▄▄  ▄▄▄▄      ▄▄'
	echo '██▀▀▀▀▀▀  ▀▀██      ██'
	echo '██          ██      ██ ▄██▀'
	echo '███████     ██      ██▄██'
	echo '██          ██      ██▀██▄'
	echo '██▄▄▄▄▄▄    ██▄▄▄   ██  ▀█▄'
	echo '▀▀▀▀▀▀▀▀     ▀▀▀▀   ▀▀   ▀▀▀'
	echo
	modprobe -a -q dm-crypt >/dev/null 2>&1

	if [ ! -e "/dev/disk/by-uuid/${elkuuid}" ]; then
		printf '\033[?25l'
		while [ ! -e "/dev/disk/by-uuid/${elkuuid}" ]; do
			printf '\033[1m[ \033[31mTIMEOUT\033[0m\033[1m ]\033[0m Waiting for ELK USB    [*   ]\r'
			sleep 0.1
			[ -e "/dev/disk/by-uuid/${elkuuid}" ] && break;
			printf '\033[1m[ \033[31mTIMEOUT\033[0m\033[1m ]\033[0m Waiting for ELK USB    [ *  ]\r'
			sleep 0.1
			[ -e "/dev/disk/by-uuid/${elkuuid}" ] && break;
			printf '\033[1m[ \033[31mTIMEOUT\033[0m\033[1m ]\033[0m Waiting for ELK USB    [  * ]\r'
			sleep 0.1
			[ -e "/dev/disk/by-uuid/${elkuuid}" ] && break;
			printf '\033[1m[ \033[31mTIMEOUT\033[0m\033[1m ]\033[0m Waiting for ELK USB    [   *]\r'
			sleep 0.1
			[ -e "/dev/disk/by-uuid/${elkuuid}" ] && break;
			printf '\033[1m[ \033[31mTIMEOUT\033[0m\033[1m ]\033[0m Waiting for ELK USB    [  * ]\r'
			sleep 0.1
			[ -e "/dev/disk/by-uuid/${elkuuid}" ] && break;
			printf '\033[1m[ \033[31mTIMEOUT\033[0m\033[1m ]\033[0m Waiting for ELK USB    [ *  ]\r'
			sleep 0.1
		done

		printf '\033[2K\033[?25h'
	fi

	stty -echo
	while (true); do
		printf 'Enter Decryption Password: '
		read password
		echo "$password" | cryptsetup open "/dev/disk/by-uuid/${elkuuid}" elkdev && break
		printf "\r"
	done
	printf "\nUSB Key Decryption Successful \033[1m[\033[0m \033[32mOK\033[0m \033[1m]\033[0m\n"
	stty echo
}