aboutsummaryrefslogblamecommitdiffstats
path: root/wire-desktop/bash-aliases
blob: dfc0d2b272e99727296bdb15de9b10a5a8603aec (plain) (tree)
1
2
3


                      



















                                                                                                                               


                













                                                                                                                       

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