aboutsummaryrefslogtreecommitdiffstats
path: root/element-desktop
diff options
context:
space:
mode:
Diffstat (limited to 'element-desktop')
-rw-r--r--element-desktop/Makefile19
-rw-r--r--element-desktop/bash-aliases18
2 files changed, 37 insertions, 0 deletions
diff --git a/element-desktop/Makefile b/element-desktop/Makefile
new file mode 100644
index 0000000..60aeb57
--- /dev/null
+++ b/element-desktop/Makefile
@@ -0,0 +1,19 @@
+.POSIX:
+
+install:
+ test -f ~/.var/element/ElementCrypt.img
+ test -f ~/.var/element/ElementCrypt.key
+ mkdir -p -- ~/.var/element/ElementCrypt.d
+ test -e ~/.config/Element || ln -s -- ../.var/element/ElementCrypt.d/Element ~/.config/Element
+ pacman -Qq -- asroot </dev/null >/dev/null
+ pacman -Qq -- gnupg </dev/null >/dev/null
+ pacman -Qq -- cryptsetup </dev/null >/dev/null
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/element-desktop
+ ln -sf -- ~/.dotfiles/element-desktop/bash-aliases ~/.config/bash/aliases.d/element-desktop
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/element-desktop
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/element-desktop/bash-aliases b/element-desktop/bash-aliases
new file mode 100644
index 0000000..b58dfbd
--- /dev/null
+++ b/element-desktop/bash-aliases
@@ -0,0 +1,18 @@
+# -*- shell-script -*-
+
+mount-element () {
+ asroot env XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR}" ELEMENT_DIR=~/.var/element sh -ec '
+ device="$(losetup --show -f -P "${ELEMENT_DIR}/ElementCrypt.img")"
+ printf "%s\n" "${device}" > "${XDG_RUNTIME_DIR}/ElementCrypt"
+ gpg --decrypt "${ELEMENT_DIR}/ElementCrypt.key" | cryptsetup -d - open "${device}" ElementCrypt
+ mount /dev/mapper/ElementCrypt "${ELEMENT_DIR}/ElementCrypt.d"
+ '
+}
+
+umount-element () {
+ asroot env XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR}" ELEMENT_DIR=~/.var/element sh -c '
+ umount "${ELEMENT_DIR}/ElementCrypt.d"
+ cryptsetup close ElementCrypt
+ losetup --detach "$(cat -- "${XDG_RUNTIME_DIR}/ElementCrypt")"
+ '
+}