toyotacorolla

vroom
git clone https://git.davidvoz.net/toyotacorolla.git
Log | Files | Refs

mounter (1155B)


      1 #!/bin/sh
      2 # $ mounter
      3 # you will then be guided through
      4 # works best with USB drives, not tested with other devices
      5 
      6 set -e
      7 
      8 sudo -v || exit 1
      9 
     10 i=1
     11 devices=""
     12 echo "devices found"
     13 
     14 while read -r dev; do
     15     if sudo cryptsetup isLuks "/dev/$dev" 2>/dev/null; then
     16         echo "[$i] /dev/$dev"
     17         devices="$devices /dev/$dev"
     18         i=$((i + 1))
     19     fi
     20 done << EOF
     21 $(lsblk -do NAME)
     22 EOF
     23 
     24 [ "$i" -eq 1 ] && exit 1
     25 
     26 set -- $devices
     27 
     28 if [ "$i" -eq 2 ]; then
     29     chosen_index=1
     30 else
     31     printf "select a device to unlock [1-%d]: " $((i - 1))
     32     read chosen_index
     33 fi
     34 
     35 n=1
     36 for dev in "$@"; do
     37     if [ "$n" -eq "$chosen_index" ]; then
     38         chosen="$dev"
     39         break
     40     fi
     41     n=$((n + 1))
     42 done
     43 
     44 [ -z "$chosen" ] && exit 1
     45 
     46 default_name="usb$chosen_index"
     47 printf "name to assign to unlocked device [%s]: " "$default_name"
     48 read name
     49 [ -z "$name" ] && name="$default_name"
     50 
     51 echo "cryptsetup opening $chosen as $name"
     52 sudo cryptsetup open "$chosen" "$name" || exit 1
     53 
     54 mount_point="/mnt/$name"
     55 sudo mkdir -p "$mount_point"
     56 echo "mounting $name"
     57 sudo mount "/dev/mapper/$name" "$mount_point" || exit 1
     58 
     59 echo "$chosen mounted successfully at $mount_point"