toyotacorolla

vroom
git clone https://git.davidvoz.net/toyotacorolla.git
index
logs
tree

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