#!/bin/sh

# This is a simple shell script that acts like 
# the hostname command.  But is returns the FQN
# in all cases.  It also servers to return just the
# domainname


if test "x$GLOBUS_LOCATION" = "x"; then
    echo "ERROR Please specify GLOBUS_LOCATION" >&2
    exit 1
fi

. ${GLOBUS_LOCATION}/libexec/globus-script-initializer

PROGRAM_NAME=`echo $0 | ${GLOBUS_SH_SED-sed} -e 's|.*/||g'`
PROGRAM_VERSION=`echo '$Revision: 1.1 $' | ${GLOBUS_SH_CUT-cut} -d' ' -f2`

short_usage="${PROGRAM_NAME} [-help] [-version]"

long_usage()
{
   ${GLOBUS_SH_CAT-cat} 1>&2 <<EOF

${short_usage}

EOF
  case "${PROGRAM_NAME}" in

    globus-hostname)
      echo "    ${PROGRAM_NAME} returns the system hostname and makes some" 1>&2
      echo "    additional checks to ensure a fully qualified hostname." 1>&2
      ;;

    globus-domainname)
		echo "    ${PROGRAM_NAME} tries to return the system domainname" 1>&2 
		;;
    *)
      echo "Configuration error"  1>&2
      exit 1
      ;;
    esac

${GLOBUS_SH_CAT-cat} 1>&2 <<EOF
    Setting the environment variable GLOBUS_HOSTNAME will cause
    ${PROGRAM_NAME} to return a valule based on this variable.
    This is useful for specifying the use of certain network interfaces when
    communicating etc.

EOF
}

. ${GLOBUS_LOCATION}/libexec/globus-args-parser-header

if [ -n "$1" ]; then
    globus_args_unrecognized_option "$1"
fi
 
_hostname="${GLOBUS_HOSTNAME}"

# If the ENV variable is not set, determine its correct value
if [ -z "${GLOBUS_HOSTNAME}" ] ; then

  # Set the _fullname based upon Globus's hostname command
  if [ -x "${libexecdir}/globus-libc-hostname" ]; then
    _fullname="`${libexecdir}/globus-libc-hostname`"
  fi

  # if failed to set, use the system's hostname command
  if [ -z "${_fullname}" ] ; then
    _fullname=`${GLOBUS_SH_HOSTNAME-hostname}`
  fi

  _basename="`echo ${_fullname} | ${GLOBUS_SH_CUT-cut} -d. -f1`"
 
  if [ "X$_fullname" = "X$_basename" -a ! -z "$GLOBUS_LOCALDOMAIN" ] ; then
    # Its not fully qualified
    _fullname="${_basename}.${GLOBUS_LOCALDOMAIN}"
  fi

  GLOBUS_HOSTNAME="`echo ${_fullname} | ${GLOBUS_SH_TR-tr} 'A-Z' 'a-z'`"
fi

GLOBUS_DOMAINNAME="`echo $GLOBUS_HOSTNAME | ${GLOBUS_SH_CUT-cut} -s -d '.' -f '2-'`"

case "${PROGRAM_NAME}" in

  globus-hostname)
    echo $GLOBUS_HOSTNAME
    ;;
  globus-domainname)
    echo $GLOBUS_DOMAINNAME
    ;;

esac




