diff --git a/glue/src/mount-sftp b/glue/src/mount-sftp new file mode 100755 index 0000000..3d2cff7 --- /dev/null +++ b/glue/src/mount-sftp @@ -0,0 +1,41 @@ +#!/bin/sh + +name=`basename $0` + +isInstalled() { + type "$1" > /dev/null +} + +mustHaveInstalled() { + if ! isInstalled "$1"; then + echo "$name: $1 is not installed" >&2 + exit 1 + fi +} + +usage() { + echo "Usage: $name" >&2 + exit 2 +} + +[ "$#" -gt 0 ] && usage + +sshfsOptions="reconnect,ServerAliveInterval=4,ServerAliveCountMax=10" + +mustHaveInstalled sshfs +mustHaveInstalled mountpoint +mustHaveInstalled fusermount + +mountsDir="$HOME/Remote" +[ -n "$XMD_SFTP_DIR" ] && mountsDir="$XMD_SFTP_DIR" + +for point in "$mountsDir"/*; do + # do not deal with files + [ -d "$point" ] || continue + + mountpoint "$point" > /dev/null && fusermount -u "$point" + + address=`basename "$point"` + echo "mounting $address on $point" >&2 + sshfs "$address:/" "$point" -o $sshfsOptions +done