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


                      



















                                                                                                                                     


                   













                                                                                                                             

                 
# -*- shell-script -*-

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

umount-element () {
	asroot env \
		ELEMENT_DIR=~/.var/opt/element \
		ELEMENT_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \
		              sed -n 's#\(/[^ ]*\) '"$(realpath -- ~/.var/opt/element/ElementCrypt.img)"'$#\1#p' | sed 1q)" \
		sh -c '
			if mountpoint -q -- "${ELEMENT_DIR}/ElementCrypt.d"; then
				umount -- "${ELEMENT_DIR}/ElementCrypt.d"
			fi
			if test -e /dev/mapper/ElementCrypt; then
				cryptsetup close ElementCrypt
			fi
			if test -n "${ELEMENT_DEV}"; then
				losetup -d "${ELEMENT_DEV}"
			fi
		'
}