#!/usr/bin/bash
VSTORAGE_NFS_LIB=/usr/libexec/vstorage-nfs/nfs_functions
ROOT=""
SHARE_NAME=""

ARGS="${@}"

function print_usage {
        exec 1>&2
        echo "Start the specified NFS share on current host."
        echo "Usage:"
        echo " vstorage-nfs start -n,--name SHARE_NAME"
        echo "Options:"
        echo "  -n,--name NAME          name of NFS share"
        echo " "
        exit 1
}


function parse_args {
        exec 1>&2
        while [ "${#}" -gt 0 ]; do
                case "${1}" in
                        "-h"|"--help")
                                print_usage
                                ;;
                        "-r"|"--root")
                                [ -z "${2}" ] && print_usage
                                ROOT="${2}"
                                shift
                                shift
                                ;;
                        "-n"|"--name")
                                [ -z "${2}" ] && print_usage
                                SHARE_NAME="${2}"
                                shift
                                shift
                                ;;
                        *)
                                echo "Unknown option '${1}'." 1>&2
                                print_usage
                                ;;
                esac
        done

        if [ -z "$SHARE_NAME" ] ; then
                echo "Share name (-n,--name) must be specified."
                print_usage
        fi
}

function do_start {
	pcs_nfs_check_ganesha
	pcs_nfs_check_share $SHARE_NAME
	# do start share
	pcs_nfs_start_share $SHARE_NAME
	if [ $? -ne 0 ]; then
		echo "Unable start share '$SHARE_NAME'" 1>&2
		exit 2
	fi
	touch "$NFS_ROOT/shares/$SHARE_NAME/control/.auto" >/dev/null 2>&1
        exit 0
}

if [ ! -x $VSTORAGE_NFS_LIB ] ; then
        echo "Unable find executable $VSTORAGE_NFS_LIB" 1>&2
        exit 1
fi

source $VSTORAGE_NFS_LIB
[ -f $NFS_ETC/config ] && source $NFS_ETC/config

parse_args $ARGS

NFS_ROOT=`pcs_nfs_get_root "${ROOT}"`
pcs_nfs_check_root
pcs_ha_init_host
pcs_ha_lock_exec do_start "$SHARE_NAME"
exit $?

