sshfs-mapper: Replaced block braces by if/then/else/fi . Allow symlinks for configuration files.
git-svn-id: https://websvn.glenux.net/svn/Upoc/sshfs-mapper/trunk@1392 eaee96b3-f302-0410-b096-c6cfd47f7835
This commit is contained in:
parent
5e4cf3a354
commit
1b8bff22a0
1 changed files with 29 additions and 27 deletions
56
sshfs-mapper
56
sshfs-mapper
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# vim: set ts=2 sw=2 et:
|
# vim: set ts=2 sw=2 :
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ exit 1
|
||||||
do_initialize()
|
do_initialize()
|
||||||
{
|
{
|
||||||
echo "Initializing user maps..."
|
echo "Initializing user maps..."
|
||||||
if [ -d "$SSHFS_DIR" ]; then
|
if [ -e "$SSHFS_DIR" ]; then
|
||||||
echo -e "\nERROR: Configuration directory already exists!" >&2
|
echo -e "\nERROR: Configuration directory already exists!" >&2
|
||||||
echo "To erase your setup, please manually remove directory \"$SSHFS_DIR\" first." >&2
|
echo "To erase your setup, please manually remove directory \"$SSHFS_DIR\" first." >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -88,12 +88,12 @@ REMOTE_PORT=22
|
||||||
MAP=RemoteDocs /home/\$USER/Documents
|
MAP=RemoteDocs /home/\$USER/Documents
|
||||||
MAP=RemoteMusic /home/\$USER/Music
|
MAP=RemoteMusic /home/\$USER/Music
|
||||||
EOF
|
EOF
|
||||||
echo -e "\nManually edit configuration files in \"$SSHFS_DIR\""
|
echo -e "\nManually edit configuration files in \"$SSHFS_DIR\""
|
||||||
echo "to adjust sshfs-mapper configuration to your settings."
|
echo "to adjust sshfs-mapper configuration to your settings."
|
||||||
echo -e "\nType \"man sshfs-mapper\" to get more help."
|
echo -e "\nType \"man sshfs-mapper\" to get more help."
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,26 +137,26 @@ do
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
[ ! -d $SSHFS_DIR ] && mkdir $SSHFS_DIR
|
if [ ! -e $SSHFS_DIR ]; then mkdir $SSHFS_DIR ; fi
|
||||||
[ ! -d $SSHFS_DIR ] && {
|
if [ ! -e $SSHFS_DIR ]; then
|
||||||
echo -e "\nERROR: Unable to create $SSHFS_DIR" >&2
|
echo -e "\nERROR: Unable to create $SSHFS_DIR" >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
fi
|
||||||
|
|
||||||
[ ! -f "$SSHFS_CONFIG" ] && {
|
if [ ! -e "$SSHFS_CONFIG" ]; then
|
||||||
echo "MOUNTPOINT=\$HOME/mnt" >> "$SSHFS_CONFIG"
|
echo "MOUNTPOINT=\$HOME/mnt" >> "$SSHFS_CONFIG"
|
||||||
}
|
fi
|
||||||
[ ! -f "$SSHFS_CONFIG" ] && {
|
if [ ! -e "$SSHFS_CONFIG" ]; then
|
||||||
echo -e "\nERROR: Unable to find config file." >&2
|
echo -e "\nERROR: Unable to find config file." >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
fi
|
||||||
|
|
||||||
mountpoint=$( read_conf "$SSHFS_CONFIG" MOUNTPOINT )
|
mountpoint=$( read_conf "$SSHFS_CONFIG" MOUNTPOINT )
|
||||||
[ "x$mountpoint" = "x" ] && {
|
if [ "x$mountpoint" = "x" ]; then
|
||||||
echo -e "\nERROR: Mountpoint undefined." >&2
|
echo -e "\nERROR: Mountpoint undefined." >&2
|
||||||
echo "Edit mountpoint definition in \"$SSHFS_CONFIG\"" >&2
|
echo "Edit mountpoint definition in \"$SSHFS_CONFIG\"" >&2
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
fi
|
||||||
|
|
||||||
is_mounted() {
|
is_mounted() {
|
||||||
local map_name=$1
|
local map_name=$1
|
||||||
|
@ -167,11 +167,11 @@ is_mounted() {
|
||||||
|
|
||||||
for map_file in `find "$SSHFS_DIR" -type f -name '*.map' `; do
|
for map_file in `find "$SSHFS_DIR" -type f -name '*.map' `; do
|
||||||
if [ $SSHFS_HOST_LIST -eq 1 ]; then
|
if [ $SSHFS_HOST_LIST -eq 1 ]; then
|
||||||
basename ${map_file/.map/}
|
basename `echo ${map_file} | sed 's/.map$//'`
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
if [ $SSHFS_HOST_LIMIT -eq 1 ]; then
|
if [ $SSHFS_HOST_LIMIT -eq 1 ]; then
|
||||||
if ! echo "$SSHFS_HOST_PATTERN" | grep -q " `basename ${map_file/.map/}` " ; then
|
if ! echo "$SSHFS_HOST_PATTERN" | grep -q " `basename \`echo ${map_file} |sed s'/.map$//' \`` " ; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
@ -195,26 +195,28 @@ for map_file in `find "$SSHFS_DIR" -type f -name '*.map' `; do
|
||||||
map_name=""
|
map_name=""
|
||||||
remote_dir=""
|
remote_dir=""
|
||||||
for map_item in $map; do
|
for map_item in $map; do
|
||||||
[ $map_count = 0 ] && map_name=$map_item
|
if [ $map_count = 0 ]; then map_name=$map_item ; fi
|
||||||
[ $map_count = 1 ] && remote_dir=$map_item
|
if [ $map_count = 1 ]; then remote_dir=$map_item ; fi
|
||||||
map_count=$(( ( $map_count + 1 ) % 2 ))
|
map_count=$(( ( $map_count + 1 ) % 2 ))
|
||||||
[ $map_count = 0 ] && {
|
if [ $map_count = 0 ]; then
|
||||||
echo " $map_name => $remote_dir"
|
echo " $map_name => $remote_dir"
|
||||||
if ! is_mounted $map_name ; then
|
if ! is_mounted $map_name ; then
|
||||||
[ $SSHFS_MOUNT = 1 ] && {
|
if [ $SSHFS_MOUNT = 1 ]; then
|
||||||
mkdir -p $mountpoint/$map_name
|
mkdir -p $mountpoint/$map_name
|
||||||
do_mount $remote_user@$remote_host:$remote_dir $mountpoint/$map_name $remote_port
|
do_mount $remote_user@$remote_host:$remote_dir $mountpoint/$map_name $remote_port
|
||||||
rm -f $HOME/$map_name
|
rm -f $HOME/$map_name
|
||||||
ln -s $mountpoint/$map_name $HOME/$map_name
|
ln -s $mountpoint/$map_name $HOME/$map_name
|
||||||
}
|
fi
|
||||||
else
|
else
|
||||||
[ $SSHFS_MOUNT = 0 ] && {
|
if [ $SSHFS_MOUNT = 0 ]; then
|
||||||
do_umount $remote_user@$remote_host:$remote_dir $mountpoint/$map_name
|
do_umount $remote_user@$remote_host:$remote_dir $mountpoint/$map_name
|
||||||
rm -f $HOME/$map_name
|
rm -f $HOME/$map_name
|
||||||
}
|
fi
|
||||||
[ $SSHFS_MOUNT = 1 ] && echo " (Already mounted on $mountpoint/$map_name)"
|
if [ $SSHFS_MOUNT = 1 ]; then
|
||||||
|
echo " (Already mounted on $mountpoint/$map_name)"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue