#!/bin/sh # # Copyright 1999-2006 University of Chicago # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # 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 PROGRAM_NAME="$(basename $0)" PROGRAM_VERSION="18.11" PACKAGE="globus_common" VERSION="18.11" DIRT_TIMESTAMP="1629915172" DIRT_BRANCH_ID="0" prefix="${GLOBUS_LOCATION-/cvmfs/dirac.egi.eu/dirac/v8.0.47/Linux-x86_64}" exec_prefix="${prefix}" sbindir="${exec_prefix}/sbin" bindir="${exec_prefix}/bin" includedir="/cvmfs/dirac.egi.eu/dirac/v8.0.47/Linux-x86_64/include/globus" datarootdir="${prefix}/share" datadir="${datarootdir}" libexecdir="/cvmfs/dirac.egi.eu/dirac/v8.0.47/Linux-x86_64/share/globus" sysconfdir="${prefix}/etc" sharedstatedir="${prefix}/com" localstatedir="${prefix}/var" PATH=${bindir}:${sbindir}:${PATH} short_usage="${PROGRAM_NAME} [-help] [-version]" long_usage() { 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 cat 1>&2 <<EOF Setting the environment variable GLOBUS_HOSTNAME will cause ${PROGRAM_NAME} to return a value based on this variable. This is useful for specifying the use of certain network interfaces when communicating etc. EOF } for arg in "$@"; do case "$arg" in -version|--version) if [ "X${PROGRAM_NAME}" != "X" -a \ "X${PROGRAM_VERSION}" != "X" ]; then echo "${PROGRAM_NAME}: ${PROGRAM_VERSION}" elif [ "X${PACKAGE}" != "X" -a \ "X${VERSION}" != "X" ]; then echo "${PACKAGE}: ${VERSION}" else echo "No version information available." fi exit 0 ;; -versions|--versions) __AT=@ if [ -n "${PACKAGE}" -a -n "${VERSION}" -a \ -n "${DIRT_TIMESTAMP}" -a -n "${DIRT_BRANCH_ID}" -a \ "X${DIRT_TIMESTAMP}" != "X${__AT}DIRT_TIMESTAMP${__AT}" -a \ "X${DIRT_BRANCH_ID}" != "X${__AT}DIRT_BRANCH_ID${__AT}" ]; then echo "${PACKAGE}: ${VERSION} (${DIRT_TIMESTAMP}-${DIRT_BRANCH_ID})" else echo "No DiRT information available." fi exit 0; ;; *) echo "ERROR: option $arg : unrecognized option" echo "${short_usage}" exit 1; ;; esac done _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 command -v "globus-libc-hostname" > /dev/null; then _fullname="$(globus-libc-hostname)" fi # if failed to set, use the system's hostname command if [ -z "${_fullname}" ] && command -v "hostname" > /dev/null; then _fullname=`hostname` fi _basename="${_fullname%%.*}" if [ "X$_fullname" = "X$_basename" -a ! -z "$GLOBUS_LOCALDOMAIN" ] ; then # Its not fully qualified _fullname="${_basename}.${GLOBUS_LOCALDOMAIN}" fi GLOBUS_HOSTNAME="`echo ${_fullname} | tr 'A-Z' 'a-z'`" fi if $(echo "$GLOBUS_HOSTNAME" | grep -Eq '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'); then GLOBUS_DOMAINNAME="" else GLOBUS_DOMAINNAME="`echo $GLOBUS_HOSTNAME | cut -s -d '.' -f '2-'`" fi case "${PROGRAM_NAME}" in globus-hostname) echo $GLOBUS_HOSTNAME ;; globus-domainname) echo $GLOBUS_DOMAINNAME ;; esac