diff options
Diffstat (limited to '')
-rwxr-xr-x | .local/bin/hddmnt | 62 |
1 files changed, 43 insertions, 19 deletions
diff --git a/.local/bin/hddmnt b/.local/bin/hddmnt index e2df789..33d0ebf 100755 --- a/.local/bin/hddmnt +++ b/.local/bin/hddmnt @@ -1,21 +1,45 @@ #!/bin/sh -e -if ! diskinfo da0 >/dev/null; then - notify-send -u critical 'fathdd' ' HDD not detected' - exit 1 -fi -if mount | grep -F /dev/da0p1; then - notify-send -u critical \ - 'fathdd' \ - " HDD already mounted to \ -<b>$(mount | grep -F '/dev/da0p1' | awk '{print $3}')</b>" - exit 1 -fi -if ! dmenu -m 0 -p 'Enter password: ' -P | - geli attach -k /root/geli_keys/fathdd_ext.key -j - da0p1; then - notify-send -u critical 'fathdd' ' Failed to mount HDD' - exit 1 -fi -mkdir -p "$HOME"/hdd -mount /dev/da0p1.eli "$HOME"/hdd -notify-send -t 5000 'fathdd' ' HDD mounted to <b>~/hdd</b>' +devname="exthdd" +mountpoint="$HOME/$devname" + +case "$(hostname -s)" in + mother|po-rbo) + dev=$(find /dev/sd* -type b -exec bash -c 'doas cryptsetup isLuks {} && echo {}' \; | head -n1) + if [ -z "$dev" ]; then + notify-send -u critical 'exthdd' ' crypt dev not detected' + exit 1 + fi + if ! doas cryptsetup open "$dev" "$devname"; then + notify-send -u critical 'exthdd' " failed to uncrypt dev $dev" + exit 1 + fi + mkdir -p "$mountpoint" + if ! doas mount /dev/mapper/"$devname" "$mountpoint"; then + notify-send -u critical 'exthdd' " failed to mount dev $dev" + exit 1 + fi + notify-send -t 5000 'exthdd' " crypt dev mounted to $mountpoint" + ;; + mars) + if ! diskinfo da0 >/dev/null; then + notify-send -u critical 'fathdd' ' HDD not detected' + exit 1 + fi + if mount | grep -F /dev/da0p1; then + notify-send -u critical \ + 'fathdd' \ + " HDD already mounted to \ + <b>$(mount | grep -F '/dev/da0p1' | awk '{print $3}')</b>" + exit 1 + fi + if ! dmenu -m 0 -p 'Enter password: ' -P | + geli attach -k /root/geli_keys/fathdd_ext.key -j - da0p1; then + notify-send -u critical 'fathdd' ' Failed to mount HDD' + exit 1 + fi + mkdir -p "$HOME"/hdd + mount /dev/da0p1.eli "$HOME"/hdd + notify-send -t 5000 'fathdd' ' HDD mounted to <b>~/hdd</b>' + ;; +esac |