diff options
author | Mattias Andrée <m@maandree.se> | 2024-11-28 22:54:29 +0100 |
---|---|---|
committer | Mattias Andrée <m@maandree.se> | 2024-11-28 22:54:29 +0100 |
commit | d9513087a1a0702325bef126ebfcaf6755602f76 (patch) | |
tree | 5122cf30674a2adce4aa0f9e29e05a0a45319291 /cryptsetup/mount-devices | |
parent | m (diff) | |
download | dotfiles-d9513087a1a0702325bef126ebfcaf6755602f76.tar.gz dotfiles-d9513087a1a0702325bef126ebfcaf6755602f76.tar.bz2 dotfiles-d9513087a1a0702325bef126ebfcaf6755602f76.tar.xz |
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'cryptsetup/mount-devices')
-rwxr-xr-x | cryptsetup/mount-devices | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/cryptsetup/mount-devices b/cryptsetup/mount-devices new file mode 100755 index 0000000..a26fd1c --- /dev/null +++ b/cryptsetup/mount-devices @@ -0,0 +1,35 @@ +#!/bin/sh + +# Although the name doesn't indicate it, this is only for encrypted +# partitions, and it exists only because systemd is absolutely +# terrible at mounting encrypted filesystems. Thanks you, Lennart +# and all the idiots that thought your craps smelled good. + +cd /devices + +for f in *; do + # Make sure the symlink points to an available device + if ! test -e "$f"; then + continue + fi + + # Make sure that the device should be mounted in /media/ + if ! test -d "/media/$f"; then + continue; + fi + + # Make sure the device is not already mounted + if mountpoint -q "/media/$f"; then + continue; + fi + + # If the device has not been decrypted already, attempt to decrypt it + if ! test -e "/dev/mapper/$f"; then + if ! cryptsetup open "/devices/$f" "$f"; then + continue + fi + fi + + # And of course, mount the decrypted device + mount "/dev/mapper/$f" "/media/$f" +done |