aboutsummaryrefslogtreecommitdiffstats
path: root/signal-desktop
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2023-11-20 06:04:40 +0100
committerMattias Andrée <maandree@kth.se>2023-11-20 06:04:48 +0100
commit0b0adf152e94df7dff508462b4e50500e3c6ad6a (patch)
treeddbe3c4ebd4ae72c2d39b38e0782f435f5716dae /signal-desktop
parentm (diff)
downloaddotfiles-0b0adf152e94df7dff508462b4e50500e3c6ad6a.tar.gz
dotfiles-0b0adf152e94df7dff508462b4e50500e3c6ad6a.tar.bz2
dotfiles-0b0adf152e94df7dff508462b4e50500e3c6ad6a.tar.xz
Automatically mount signal/element/wire when started
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'signal-desktop')
-rw-r--r--signal-desktop/Makefile19
-rw-r--r--signal-desktop/bash-aliases42
-rwxr-xr-xsignal-desktop/mount-signal22
-rwxr-xr-xsignal-desktop/signal-desktop4
-rwxr-xr-xsignal-desktop/umount-signal17
5 files changed, 56 insertions, 48 deletions
diff --git a/signal-desktop/Makefile b/signal-desktop/Makefile
index ce08e1d..570a254 100644
--- a/signal-desktop/Makefile
+++ b/signal-desktop/Makefile
@@ -9,12 +9,19 @@ install:
../check-installed gnupg
../check-installed cryptsetup
../check-installed key2root
- mkdir -p -- ~/.config/bash/aliases.d
- test ! -e ~/.config/bash/aliases.d/signal-desktop || \
- test -L ~/.config/bash/aliases.d/signal-desktop
- ln -sf -- ~/.dotfiles/signal-desktop/bash-aliases ~/.config/bash/aliases.d/signal-desktop
+ ../check-installed-shebang mount-signal
+ ../check-installed-shebang umount-signal
+ ../check-installed-shebang signal-desktop
+ mkdir -p -- ~/.local/bin/
+ test ! -e ~/.local/bin/mount-signal || test -L ~/.local/bin/mount-signal
+ ln -sf -- ~/.dotfiles/signal-desktop/mount-signal ~/.local/bin/
+ test ! -e ~/.local/bin/umount-signal || test -L ~/.local/bin/umount-signal
+ ln -sf -- ~/.dotfiles/signal-desktop/umount-signal ~/.local/bin/
+ test ! -e ~/.local/bin/signal-desktop || test -L ~/.local/bin/signal-desktop
+ ln -sf -- ~/.dotfiles/signal-desktop/signal-desktop ~/.local/bin/
uninstall:
+! ../check-installed signal-desktop
- -unlink -- ~/.config/bash/aliases.d/signal-desktop
- -rmdir -- ~/.config/bash/aliases.d
+ -unlink -- ~/.local/bin/mount-signal
+ -unlink -- ~/.local/bin/umount-signal
+ -unlink -- ~/.local/bin/signal-desktop
diff --git a/signal-desktop/bash-aliases b/signal-desktop/bash-aliases
deleted file mode 100644
index a50c8f6..0000000
--- a/signal-desktop/bash-aliases
+++ /dev/null
@@ -1,42 +0,0 @@
-# -*- shell-script -*-
-
-mount-signal () {
- if mountpoint -q -- ~/.var/opt/signal/SignalCrypt.d; then
- printf '%s\n' 'mount-signal: already mounted' >&2
- elif test -e /dev/mapper/SignalCrypt; then
- asroot env SIGNAL_DIR=~/.var/opt/signal sh -ec \
- 'mount -- /dev/mapper/SignalCrypt "${SIGNAL_DIR}/SignalCrypt.d"'
- else
- gpg --decrypt ~/.var/opt/signal/SignalCrypt.key | \
- key2root -k SignalCrypt env \
- SIGNAL_IMG=~/.var/opt/signal/SignalCrypt.img \
- SIGNAL_DIR=~/.var/opt/signal \
- SIGNAL_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \
- sed -n 's#\(/[^ ]*\) '"$(realpath -- ~/.var/opt/signal/SignalCrypt.img)"'$#\1#p' | sed 1q)" \
- sh -ec '
- if test -z "${SIGNAL_DEV}"; then
- SIGNAL_DEV="$(losetup --show -f -P "${SIGNAL_IMG}")"
- fi
- cryptsetup -d - open "${SIGNAL_DEV}" SignalCrypt
- mount -- /dev/mapper/SignalCrypt "${SIGNAL_DIR}/SignalCrypt.d"
- '
- fi
-}
-
-umount-signal () {
- asroot env \
- SIGNAL_DIR=~/.var/opt/signal \
- SIGNAL_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \
- sed -n 's#\(/[^ ]*\) '"$(realpath -- ~/.var/opt/signal/SignalCrypt.img)"'$#\1#p' | sed 1q)" \
- sh -c '
- if mountpoint -q -- "${SIGNAL_DIR}/SignalCrypt.d"; then
- umount -- "${SIGNAL_DIR}/SignalCrypt.d"
- fi
- if test -e /dev/mapper/SignalCrypt; then
- cryptsetup close SignalCrypt
- fi
- if test -n "${SIGNAL_DEV}"; then
- losetup -d "${SIGNAL_DEV}"
- fi
- '
-}
diff --git a/signal-desktop/mount-signal b/signal-desktop/mount-signal
new file mode 100755
index 0000000..6754d0f
--- /dev/null
+++ b/signal-desktop/mount-signal
@@ -0,0 +1,22 @@
+#!/bin/dash
+
+if mountpoint -q -- "${HOME}/.var/opt/signal/SignalCrypt.d"; then
+ printf '%s\n' 'mount-signal: already mounted' >&2
+elif test -e /dev/mapper/SignalCrypt; then
+ asroot env SIGNAL_DIR="${HOME}/.var/opt/signal" sh -ec \
+ 'mount -- /dev/mapper/SignalCrypt "${SIGNAL_DIR}/SignalCrypt.d"'
+else
+ gpg --decrypt -- "${HOME}/.var/opt/signal/SignalCrypt.key" | \
+ key2root -k SignalCrypt env \
+ SIGNAL_IMG="${HOME}/.var/opt/signal/SignalCrypt.img" \
+ SIGNAL_DIR="${HOME}/.var/opt/signal" \
+ SIGNAL_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \
+ sed -n 's#\(/[^ ]*\) '"$(realpath -- "${HOME}/.var/opt/signal/SignalCrypt.img")"'$#\1#p' | sed 1q)" \
+ sh -ec '
+ if test -z "${SIGNAL_DEV}"; then
+ SIGNAL_DEV="$(losetup --show -f -P "${SIGNAL_IMG}")"
+ fi
+ cryptsetup -d - -- open "${SIGNAL_DEV}" SignalCrypt
+ mount -- /dev/mapper/SignalCrypt "${SIGNAL_DIR}/SignalCrypt.d"
+ '
+fi
diff --git a/signal-desktop/signal-desktop b/signal-desktop/signal-desktop
new file mode 100755
index 0000000..54f4b99
--- /dev/null
+++ b/signal-desktop/signal-desktop
@@ -0,0 +1,4 @@
+#!/bin/dash
+set -e
+mount-signal
+exec /usr/bin/signal-desktop "$@"
diff --git a/signal-desktop/umount-signal b/signal-desktop/umount-signal
new file mode 100755
index 0000000..03e4a85
--- /dev/null
+++ b/signal-desktop/umount-signal
@@ -0,0 +1,17 @@
+#!/bin/dash
+
+asroot env \
+ SIGNAL_DIR="${HOME}/.var/opt/signal" \
+ SIGNAL_DEV="$(losetup | sed 's/\s\+/ /g' | cut -d ' ' -f 1,6 | \
+ sed -n 's#\(/[^ ]*\) '"$(realpath -- "${HOME}/.var/opt/signal/SignalCrypt.img")"'$#\1#p' | sed 1q)" \
+ sh -c '
+ if mountpoint -q -- "${SIGNAL_DIR}/SignalCrypt.d"; then
+ umount -- "${SIGNAL_DIR}/SignalCrypt.d"
+ fi
+ if test -e /dev/mapper/SignalCrypt; then
+ cryptsetup close SignalCrypt
+ fi
+ if test -n "${SIGNAL_DEV}"; then
+ losetup -d -- "${SIGNAL_DEV}"
+ fi
+ '