#!/bin/bash
EXEC_DIR="/usr/libexec/vstorage-nfs"

function print_usage {
        exec 1>&2
	echo "vstorage nfs shares control tool."
	echo "Usage:"
	echo "vstorage-nfs command [command options]"
	echo " "
	echo "Targets related commands:"
	echo " create        [options]  Create NFS share on shared storage."
	echo " delete        [options]  Delete existing NFS share."
	echo " register      [options]  Register the specified NFS share on current host."
	echo " unregister    [options]  Unregister the specified NFS share."
	echo " start         [options]  Start NFS share."
	echo " stop          [options]  Stop NFS share."
	echo " list          [options]  List of existing NFS shares."
	echo " add-export    [options]  Add new export to the specified NFS share."
	echo " del-export    [options]  Delete existing export from NFS share."
	echo " update-export [options]  Update existing export."
	echo " set           [options]  Set share parameters."
}

CMD="${1}"
shift
ARGS="${@}"
if [ "${CMD}" = "help" ] ; then
        CMD="${1}"
        ARGS="--help"
fi

case "${CMD}" in
  create)
        ${EXEC_DIR}/vstorage-nfs-make ${ARGS}
        RC=${?}
        ;;
  delete)
        ${EXEC_DIR}/vstorage-nfs-delete ${ARGS}
        RC=${?}
        ;;
  register|unregister)
        ${EXEC_DIR}/vstorage-nfs-register ${CMD} ${ARGS}
        RC=${?}
        ;;
  start)
        ${EXEC_DIR}/vstorage-nfs-start ${ARGS}
        RC=${?}
        ;;
  stop)
        ${EXEC_DIR}/vstorage-nfs-stop ${ARGS}
        RC=${?}
        ;;
  list)
        ${EXEC_DIR}/vstorage-nfs-list ${ARGS}
        RC=${?}
        ;;
  add-export|del-export|update-export|set)
        ${EXEC_DIR}/vstorage-nfs-sharectl ${CMD} ${ARGS}
        ;;
  *)
        if [ -n "${CMD}" ] ; then
                echo "Unknown command $CMD" 1>&2
        else
                echo "Command must be specified." 1>&2
        fi
        print_usage
esac

exit $RC

