#!/bin/sh
set -eu

command -v rclone >/dev/null || { echo 'rclone not found.' >&2; exit 1; }

usage () {
    echo "$0: [-a|--all] [-l|--list] [FOLDER]" >&2
    exit 1
}

_mount () {
    folder="$1"
    mkfolder -p "$HOME/$folder"
    rclone mount \
        --allow-non-empty \
        --daemon \
        --gid "$(id -g)" \
        --vfs-cache-mode full \
        --uid "$(id -u)" \
        "nextcloud:$folder" \
        "$HOME/$folder"
}

[ "$#" -eq 1 ] || usage

folders="$(rclone lsd nextcloud: | cut -c 44- | grep -vx 'System information')"

case "$1" in
    -h|--help) usage;;
    -l|--list) echo "$folders";;
    -a|--all) echo "$folders" | xargs -I % "$0" "%";;
    *) if echo "$folders" | grep -qx "$1"
    then
        _mount "$1"
    else
        echo "Folder $1 not found in Nextcloud." >&2
        exit 1
    fi;;
esac
