Skip to content

Instantly share code, notes, and snippets.

@kamikat
Last active March 26, 2018 06:13
Show Gist options
  • Save kamikat/72f10de380d4619d42689469dc204a6a to your computer and use it in GitHub Desktop.
Save kamikat/72f10de380d4619d42689469dc204a6a to your computer and use it in GitHub Desktop.
Blocking version of sshfs.
#!/bin/bash
DATA_PATH=${DATA_PATH:-$2}
if [ -z "$DATA_PATH" ]; then
sshfs -h
exit 1
fi
LOCK_PATH=$DATA_PATH/.lock-$RANDOM
rm -rf $DATA_PATH
mkdir -p $DATA_PATH
touch $LOCK_PATH
VERSION_3=$(sshfs --version 2>&1 | grep ' 3\.')
if [ -z "$VERSION_3" ]; then
timeout 3 sshfs $@ -o StrictHostKeyChecking=no -o nonempty
else
timeout 3 sshfs $@ -o StrictHostKeyChecking=no
fi
trap "{ killall -TERM sshfs; }" SIGINT SIGTERM
while timeout --signal=KILL 3 test ! -f $LOCK_PATH \
&& timeout --signal=KILL 3 stat $DATA_PATH 1>/dev/null
do
sleep 1
done
killall -TERM sshfs 2>/dev/null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment