#! /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. # 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}:${libexecdir}:${PATH}" PROGRAM_NAME="${0##*/}" PROGRAM_VERSION='12.1' PACKAGE='globus_gram_client_tools' VERSION='12.1' DIRT_TIMESTAMP='1629915172' DIRT_BRANCH_ID='0' short_usage="$PROGRAM_NAME [-help] [-version] [-f N] [-tail N] [-r ] -out|-err " long_usage() { cat >&2 <. If neither -out or -err is given, -out is assumed. A valid proxy is required for this operation to succeed. Options: -help, -usage Display usage -version Display version -resource (-r) Fetch output using the specified resource manager -out, -err Show stdout OR stderr of remote job -tail N (-t) Show last N lines of output -follow N (-f) Show last N lines of output and any new line EOF } outopt= erropt= jobid= resource= tailopt=no followopt=no globus_args_short_usage() { cat 1>&2 <&2 < 0 \ 1>/dev/null 2>/dev/null then case "$1" in -t|-tail) tailopt="$2" ;; -f|-follow) followopt="$2" ;; esac shift else globus_args_option_error "$1" "need an integer argument" fi ;; --) break ;; -*) globus_args_unrecognized_option "$1" ;; *) if [ $# -gt 1 ]; then globus_args_option_error "$1" "jobID has to be last argument" fi jobid="$1" ;; esac shift done stream=stdout if [ -n "${erropt}" ] ; then stream=stderr fi if [ -z "${jobid}" ]; then echo "" >&2 echo "ERROR: missing job ID" >&2 globus_args_short_usage exit 1 fi if [ -n "${outopt}" -a -n "${erropt}" ]; then echo "" >&2 echo "ERROR: -out and -err are exclusive!" >&2 globus_args_short_usage exit 1 fi if [ "${followopt}" != no -a "${tailopt}" != no ]; then echo "" >&2 echo "ERROR: -follow and -tail are exclusive!" >&2 globus_args_short_usage exit 1 fi if [ -z "${resource}" ]; then resource=`echo ${jobid} | awk -F: '{print $2}' | \ sed 's|/||g'` fi grid-proxy-info -exists if [ $? -ne 0 ]; then echo "" >&2 echo "ERROR: unable to locate a valid proxy" >&2 globus_args_short_usage exit 1 fi case ${tailopt}:${followopt} in no:no) # cat the file, exit command="\cat" ;; *:no) # tail the file command="\tail -${tailopt}" ;; no:*) # follow the file command="\tail -${followopt}f" ;; *) echo "INTERNAL ERROR: tailopt:followopt = ${tailopt}:${followopt}" >&2 ;; esac tmpfile=${TMPDIR:-/tmp}/globus_job_get_output.${LOGNAME}.tmp.$$ # redirect stderr to file so we can see if error occurs after the fact globusrun -s -r "$resource" 2> $tmpfile \ "&(executable=\$(GLOBUSRUN_GASS_URL)/$bindir/globus-job-get-output-helper) (arguments= anExtraTag \"$jobid\" \"$stream\" \"$tailopt\" \"$followopt\" \$(GLOBUSRUN_GASS_URL))" status=$? if test "$status" != 0; then cat $tmpfile 1>&2 rm $tmpfile exit $status fi if test -s $tmpfile; then cat $tmpfile 1>&2 rm $tmpfile exit 1 fi rm $tmpfile exit 0