| 
							- #!/bin/bash
 - 
 - # These are all default values
 - REMOTE_IN_SSHCONFIG=-1
 - REMOTE_USER="obsidianblk"
 - REMOTE_HOST="Trappist1"
 - REMOTE_PATH="/home/obsidianblk"
 - REMOTE_PORT=22
 - MOUNT_POINT="$HOME/remote"
 - 
 - PORT_VAR=""
 - 
 - NEXT_ARG_IS_FILE=-1
 - OP=""
 - SRC_FILE=""
 - 
 - URI=""
 - 
 - function usage() {
 -   echo "Usage: $0 [-o <path to mount options>] mount|unmount|remount"
 - }
 - 
 - function defineURI() {
 -   URI="$REMOTE_HOST:$REMOTE_PATH"
 -   if [ $REMOTE_IN_SSHCONFIG -lt 0 ]; then
 -     URI="$REMOTE_USER@$URI"
 -     PORT_VAR="-p $REMOTE_PORT"
 -   fi
 - }
 - 
 - if [[ "$#" -lt 1 ]]; then
 -   echo "Missing operation argument."
 -   usage
 -   exit 1
 - fi
 - 
 - for arg in "$@"; do
 -   if [ $NEXT_ARG_IS_FILE -ge 0 ]; then
 -     if [ -f "$arg" ]; then
 -       SRC_FILE="$arg"
 -       source "$arg"
 -       NEXT_ARG_IS_FILE=-1
 -     else
 -       echo "ERROR: Option file $arg  missing or invalid."
 -       usage
 -       exit 1
 -     fi
 -   else
 -     case "$arg" in
 -       mount) ;&
 -       unmount) ;&
 -       remount)
 -         if [ "$OP" != "" ]; then
 -           echo "ERROR: Multiple operations defined."
 -           usage
 -           exit 1
 -         fi
 -         OP="$arg"
 -         ;;
 -       -o)
 -         NEXT_ARG_IS_FILE=0
 -         ;;
 -     esac
 -   fi
 - done
 - 
 - 
 - if ! [[ -d "$MOUNT_POINT" ]]; then
 -   echo "ERROR: [$MOUNT_POINT] does not exist or is not a directory."
 -   usage
 -   exit 1
 - fi
 - 
 - case "$OP" in
 -   mount)
 -     defineURI
 -     if ! mount | grep "$URI on $MOUNT_POINT" > /dev/null
 -     then
 -       echo "Mounting $URI on $MOUNT_POINT... "
 -       sshfs -C $PORT_VAR -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 $URI $MOUNT_POINT &&
 -       ( # Success
 -         echo "Mounted."
 -         notify-send -i server 'Successfully Mounted' "$URI" &> /dev/null
 -         exit 0
 -       ) ||
 -       ( # Failure
 -         echo "Mount Failed!"
 -         notify-send -i error 'Failed to mount' "$URI" &> /dev/null
 -         exit 1
 -       )
 -     else
 -       echo "Remote folder is already mounted."
 -       exit 1
 -     fi
 -     ;;
 - 
 -   unmount)
 -     defineURI
 -     echo "$URI"
 -     if mount | grep "$URI on $MOUNT_POINT" > /dev/null
 -     then
 -       echo "Unmounting $URI from $MOUNT_POINT... "
 -       fusermount -u $MOUNT_POINT &&
 -       ( # Success
 -         echo "Unmount Successful."
 -         notify-send -i server 'Successfully Unmounted' "$URI" &> /dev/null
 -         exit 0
 -       ) ||
 -       ( # Failure
 -         echo "FAILED to Unmount!"
 -         notify-send error 'Failed to unmount' "$URI" &> /dev/null
 -         exit 1
 -       )
 -     else
 -       echo "Remote folder not mounted."
 -       exit 1
 -     fi
 -     ;;
 - 
 -   remount)
 -     $SRC_ARG=""
 -     if $SRC_FILE != ""; then
 -       SRC_ARG="-o $SRC_FILE"
 -     fi
 -     $0 unmount $SRC_ARG $OP &&
 -     $0 mount $SRC_SRG $OP
 -     ;;
 - 
 -   *)
 -     usage 
 -     exit
 -     ;;
 - esac
 - 
 - 
 
 
  |