blob: dfc0d2b272e99727296bdb15de9b10a5a8603aec (
plain) (
blame)
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
|
# -*- shell-script -*-
mount-wire () {
if mountpoint -q -- ~/.var/opt/wire/WireCrypt.d; then
printf '%s\n' 'mount-wire: already mounted' >&2
elif test -e /dev/mapper/WireCrypt; then
asroot env WIRE_DIR=~/.var/opt/wire sh -ec \
'mount -- /dev/mapper/WireCrypt "${WIRE_DIR}/WireCrypt.d"'
else
gpg --decrypt ~/.var/opt/wire/WireCrypt.key | \
key2root -k WireCrypt env \
WIRE_IMG=~/.var/opt/wire/WireCrypt.img \
WIRE_DIR=~/.var/opt/wire \
WIRE_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \
sed -n 's#\(/[^ ]*\) '"$(realpath -- ~/.var/opt/wire/WireCrypt.img)"'$#\1#p' | sed 1q)" \
sh -ec '
if test -z "${WIRE_DEV}"; then
WIRE_DEV="$(losetup --show -f -P "${WIRE_IMG}")"
fi
cryptsetup -d - open "${WIRE_DEV}" WireCrypt
mount -- /dev/mapper/WireCrypt "${WIRE_DIR}/WireCrypt.d"
'
fi
}
umount-wire () {
asroot env \
WIRE_DIR=~/.var/opt/wire \
WIRE_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \
sed -n 's#\(/[^ ]*\) '"$(realpath -- ~/.var/opt/wire/WireCrypt.img)"'$#\1#p' | sed 1q)" \
sh -c '
if mountpoint -q -- "${WIRE_DIR}/WireCrypt.d"; then
umount -- "${WIRE_DIR}/WireCrypt.d"
fi
if test -e /dev/mapper/WireCrypt; then
cryptsetup close WireCrypt
fi
if test -n "${WIRE_DEV}"; then
losetup -d "${WIRE_DEV}"
fi
'
}
|