# -*- 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 ' }