diff options
Diffstat (limited to '')
-rwxr-xr-x | wire-desktop/mount-wire | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/wire-desktop/mount-wire b/wire-desktop/mount-wire new file mode 100755 index 0000000..a6dde57 --- /dev/null +++ b/wire-desktop/mount-wire @@ -0,0 +1,22 @@ +#!/bin/dash + +if mountpoint -q -- "${HOME}/.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="${HOME}/.var/opt/wire" sh -ec \ + 'mount -- /dev/mapper/WireCrypt "${WIRE_DIR}/WireCrypt.d"' +else + gpg --decrypt -- "${HOME}/.var/opt/wire/WireCrypt.key" | \ + key2root -k WireCrypt env \ + WIRE_IMG="${HOME}/.var/opt/wire/WireCrypt.img" \ + WIRE_DIR="${HOME}/.var/opt/wire" \ + WIRE_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \ + sed -n 's#\(/[^ ]*\) '"$(realpath -- "${HOME}/.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 |