diff options
-rwxr-xr-x | xlators/mount/fuse/utils/mount.glusterfs.in | 67 |
1 files changed, 47 insertions, 20 deletions
diff --git a/xlators/mount/fuse/utils/mount.glusterfs.in b/xlators/mount/fuse/utils/mount.glusterfs.in index 7d30ee13a32..95403262015 100755 --- a/xlators/mount/fuse/utils/mount.glusterfs.in +++ b/xlators/mount/fuse/utils/mount.glusterfs.in @@ -16,8 +16,6 @@ # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301 USA - - function _init () { # log level definitions @@ -31,14 +29,13 @@ function _init () # set default log level to NORMAL log_level=$LOG_NORMAL; + prefix="@prefix@"; + exec_prefix=@exec_prefix@; + cmd_line=$(echo "@sbindir@/glusterfs"); } function start_glusterfs () { - prefix="@prefix@"; - exec_prefix=@exec_prefix@; - cmd_line=$(echo "@sbindir@/glusterfs"); - if [ -n "$log_level_str" ]; then case "$log_level_str" in "ERROR") @@ -83,21 +80,23 @@ function start_glusterfs () fi if [ -z "$volfile_loc" ]; then - if [ -n "$transport" ]; then - cmd_line=$(echo "$cmd_line \ + if [ -n "$server_ip" ]; then + if [ -n "$transport" ]; then + cmd_line=$(echo "$cmd_line \ --volfile-server=$server_ip \ --volfile-server-port=$server_port \ --volfile-server-transport=$transport"); - else - cmd_line=$(echo "$cmd_line \ + else + cmd_line=$(echo "$cmd_line \ --volfile-server=$server_ip \ --volfile-server-port=$server_port"); - fi - if [ -n "$volume_id" ]; then - cmd_line=$(echo "$cmd_line --volfile-id=$volume_id"); + fi + if [ -n "$volume_id" ]; then + cmd_line=$(echo "$cmd_line --volfile-id=$volume_id"); + fi fi else - cmd_line=$(echo "$cmd_line --volfile=$volfile_loc"); + cmd_line=$(echo "$cmd_line --volfile=$volfile_loc"); fi if [ -n "$log_server" ]; then @@ -112,20 +111,34 @@ function start_glusterfs () cmd_line=$(echo "$cmd_line --volume-name=$volume_name"); fi - cmd_line=$(echo "$cmd_line $mount_point"); exec $cmd_line; } +function usage () +{ + +echo "Usage: mount.glusterfs <volumeserver>:<volumeid/volumeport> -o <options> <mountpoint> +Options: +man 8 mount.glusterfs + +To display the version number of the mount helper: +mount.glusterfs --version" + +} function main () { + helper=$(echo "$@" | sed -n 's/.*\--[ ]*\([^ ]*\).*/\1/p'); + options=$(echo "$@" | sed -n 's/.*\-o[ ]*\([^ ]*\).*/\1/p'); + new_log_level=$(echo "$options" | sed -n 's/.*log-level=\([^,]*\).*/\1/p'); [ -n "$new_log_level" ] && { log_level_str="$new_log_level"; } + log_file=$(echo "$options" | sed -n 's/.*log-file=\([^,]*\).*/\1/p'); transport=$(echo "$options" | sed -n 's/.*transport=\([^,]*\).*/\1/p'); @@ -143,7 +156,7 @@ function main () log_server=$(echo "$options" | sed -n 's/.*log-server=\([^,]*\).*/\1/p'); log_server_port=$(echo "$options" | sed -n 's/.*log-server-port=\([^,]*\).*/\1/p'); - + volfile_loc="$1"; [ -r "$volfile_loc" ] || { @@ -175,10 +188,24 @@ function main () -e 's/[,]*volume-id=[^,]*//' \ -e 's/[,]*log-server=[^,]*//' \ -e 's/[,]*log-server-port=[^,]*//'); - # following line is product of love towards sed - # $2=$(echo "$@" | sed -n 's/[^ ]* \([^ ]*\).*/\1/p'); - - mount_point="$2"; + + # + [ -n "$helper" ] && { + cmd_line=$(echo "$cmd_line --$helper"); + exec $cmd_line; + exit 0; + } + + mount_provided=$(echo "$@" | cut -f2 -d'/'); + + [ -n "$mount_provided" ] && { + mount_point="/$mount_provided"; + } + + [ -z "$mount_point" ] && { + usage; + exit 0; + } # Simple check to avoid multiple identical mounts if grep -q " $mount_point fuse" /etc/mtab; then |