diff options
Diffstat (limited to '.local/bin/mnt')
-rwxr-xr-x | .local/bin/mnt | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/.local/bin/mnt b/.local/bin/mnt new file mode 100755 index 0000000..8470667 --- /dev/null +++ b/.local/bin/mnt @@ -0,0 +1,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 |