summaryrefslogtreecommitdiffstats
path: root/.local/bin/hddmnt
blob: 8ede4648755fc61bf33bd0cb9cc76cba90f156ef (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
#!/bin/sh -e

devname="exthdd"
mountpoint="$HOME/$devname"

case "$(hostname -s)" in
	mother|po-rbo)
		dev=$(find /dev/sd* -type b -exec bash -c 'doas cryptsetup isLuks {} && echo {}' \; | head -n1)
		if [ -z "$dev" ]; then
			notify-send -u critical 'exthdd' '  crypt dev not detected'
			exit 1
		fi
		if ! doas cryptsetup open "$dev" "$devname"; then
			notify-send -u critical 'exthdd' "  failed to uncrypt dev <b>$dev</b>"
			exit 1
		fi
		mkdir -p "$mountpoint"
		if ! doas mount /dev/mapper/"$devname" "$mountpoint"; then
			notify-send -u critical 'exthdd' "  failed to mount dev <b>$dev</b>"
			exit 1
		fi
		notify-send -t 5000 'exthdd' "  crypt dev mounted to <b>$mountpoint</b>"
		;;
	mars) 
		if ! diskinfo da0 >/dev/null; then
			notify-send -u critical 'fathdd' '  HDD not detected'
			exit 1
		fi
		if mount | grep -F /dev/da0p1; then
			notify-send -u critical \
				'fathdd' \
				"  HDD already mounted to \
				<b>$(mount | grep -F '/dev/da0p1' | awk '{print $3}')</b>"
							exit 1
		fi
		if ! dmenu -m 0 -p 'Enter password: ' -P |
			geli attach -k /root/geli_keys/fathdd_ext.key -j - da0p1; then
					notify-send -u critical 'fathdd' '  Failed to mount HDD'
					exit 1
		fi
		mkdir -p "$HOME"/hdd
		mount /dev/da0p1.eli "$HOME"/hdd
		notify-send -t 5000 'fathdd' '  HDD mounted to <b>~/hdd</b>'
		;;
esac