summaryrefslogtreecommitdiff
path: root/.local/bin/mnt
blob: 8470667c0787404b1ddbcbd810542efa3b5e7fe2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh

sudo mkdir -p "${MOUNTPATH:=/run/media/$USER}"
sudo chown "$USER:$USER" "$MOUNTPATH"

makepath() {
	[ -d "$path" ] && { rmdir "$path" || exit; }
	mkdir -p "$path"
}

case "$1" in

	mtp:*)
		path="$MOUNTPATH/${1#mtp:}"
		makepath
		simple-mtpfs "$path"
		;;

	*:|*:/*)
		path="$MOUNTPATH/${1%%:*}"
		makepath
		if grep -q "^\[${1%:}\]$" "${XDG_CONFIG_HOME:-$HOME/.config}/rclone/rclone.conf"; then
			rclone mount --daemon "$1" "$path"
		else
			sshfs "$1" "$path"
		fi
		;;

	*)
		if sudo cryptsetup isLuks "$1"; then
			uuid=$(sudo cryptsetup luksUUID "$1" | tr -d -)
			test -b /dev/disk/by-id/dm-uuid-*$uuid* && exit
			sudo cryptsetup open "$1" "crypt-$uuid"
			udisksctl mount -b "/dev/mapper/crypt-$uuid"
			exit
		fi
		udisksctl mount -b "$1"
		;;
esac