blob: 311d6ea0f2e2003aef3196953e6e3b452ba49a86 (
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
|
#!/bin/dash
if mountpoint -q -- "${HOME}/.var/opt/element/ElementCrypt.d"; then
printf '%s\n' 'mount-element: already mounted' >&2
elif test -e /dev/mapper/ElementCrypt; then
asroot=asroot
if ! isfg; then
asroot=gasroot
fi
$asroot env ELEMENT_DIR="${HOME}/.var/opt/element" sh -ec \
'mount -- /dev/mapper/ElementCrypt "${ELEMENT_DIR}/ElementCrypt.d"'
else
gpg --decrypt -- "${HOME}/.var/opt/element/ElementCrypt.key" | \
key2root -k ElementCrypt env \
ELEMENT_IMG="${HOME}/.var/opt/element/ElementCrypt.img" \
ELEMENT_DIR="${HOME}/.var/opt/element" \
ELEMENT_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \
sed -n 's#\(/[^ ]*\) '"$(realpath -- "${HOME}/.var/opt/element/ElementCrypt.img")"'$#\1#p' | sed 1q)" \
sh -ec '
if test -z "${ELEMENT_DEV}"; then
ELEMENT_DEV="$(losetup --show -f -P -- "${ELEMENT_IMG}")"
fi
cryptsetup -d - -- open "${ELEMENT_DEV}" ElementCrypt
mount -- /dev/mapper/ElementCrypt "${ELEMENT_DIR}/ElementCrypt.d"
'
fi
|