#! /bin/ksh
# IBM_PROLOG_BEGIN_TAG 
# This is an automatically generated prolog. 
#  
#  
#  
# Licensed Materials - Property of IBM 
#  
# (C) COPYRIGHT International Business Machines Corp. 2006,2019 
# All Rights Reserved 
#  
# US Government Users Restricted Rights - Use, duplication or 
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
#  
# IBM_PROLOG_END_TAG 
#
#* CPRY
#
# sccsid = "@(#)30   1.7   src/rsct/pgs/cmds/hagspbs.sh, gsctrl, rsct_rady, rady2035a 11/12/15 16:45:10"
#*======================================================================
#* Module Name:  hagspbs
#*======================================================================

#Fix for Defect 181688
unalias -a

basecmd="hagspbs"
basepath="/opt/rsct/bin"

RSCTBIN=/opt/rsct/bin
SUBSYS=cthags
set -A clinfo $(${RSCTBIN}/ct_clusterinfo -c -n)        
CLUSTER_NAME=${clinfo[0]}       # cluster-name          

SPMSG=${basepath}/hadspmsg
MSGMAPPATH=/opt/rsct/msgmaps
export MSGMAPPATH

# process the command lines                                                     
if [[ -z $1 ]]; then                                                            
   # no arguments                                                               
   $SPMSG hagsctrl ha_gs.cat IMsg_hagspbs_Usage $basecmd $basecmd $basecmd       
                                                                                
   exit                                                                         
fi                                                                              

args=""
c_opt=""
h_opt=""

# for a,l,c option coded here they are for future extention               
# but it won't affect output, just put the codes here now for future use. 

while getopts ":h:g:s:p:k" opt; do
   case $opt in
	h )
                h_opt=$OPTARG
	        args="$args -${opt} $OPTARG"
		;;
        p )
                args="$args -${opt} $OPTARG"
                ;;
        g )
                opt=s
                args="$args -${opt} $OPTARG"
                subsys=$OPTARG
                ;;
	s )
                args="$args -${opt} $OPTARG"
                subsys=$OPTARG
                ;;
        k )     savefile=1
                ;;
        * )
                #echo ${basecmd}: Not a recognized flag: -${OPTARG}
                $SPMSG hagsctrl ha_gs.cat EMsg_Incorrect_Flag ${basecmd} ${OPTARG}
                $SPMSG hagsctrl ha_gs.cat IMsg_hagspbs_Usage $basecmd $basecmd $basecmd
                exit 1
                ;;
    esac
done

shift $(($OPTIND - 1))

if [[ $subsys = "cthags" ]]           
then                                  
    domain=CLUSTER                    
elif [[ $subsys = "hags" ]]           
then                                  
    domain=PSSP                       
elif [[ $subsys = "grpsvcs" ]]        
then                                  
    domain=HACMP                      
fi                                    

# canonical form
nextcmd=`${basepath}/${basecmd}_c $args`

# execute the srccmd & get the output (which is the filename)
if [[ $domain = "CLUSTER" ]]                                                    
then                                                                            
    if [[ ! -z $CLUSTER_NAME ]]                                                 
    then                                                                        
        if [[ $CLUSTER_NAME = "IW" ]]                                           
        then                                                                    
            # this will print out 0513-085 The $basecmd Subsystem is not on file.
            exec ${basepath}/${basecmd}_c $args                                 
            exit                                                                
        else                                                                    
            logdir=/var/ct/${CLUSTER_NAME}/log/${SUBSYS}                        
        fi                                                                      
    fi                                                                          
elif [[ $domain = "PSSP" || $domain = "HACMP" ]]                                
then                                                                            
    if [[ -e /var/ha/log ]]                                                     
    then                                                                        
        logdir=/var/ha/log                                                      
    fi                                                                          
else                                                                            
    # this will print out 0513-085 The $basecmd Subsystem is not on file.       
    exec ${basepath}/${basecmd}_c $args             
    exit
fi 

outputfile="$logdir/$basecmd.out"

rc=$?
if [[ ! -z $h_opt ]]
then
    # copy remote file
    #rcp $h_opt:$outputfile /tmp/$basecmd.out
    #cat /tmp/$basecmd.out
    #rm -f  /tmp/$basecmd.out
    rsh $h_opt cat $outputfile  
    exit 0
fi
if [[ $rc -eq 0 && ! -z $outputfile ]]; then
	# successful....and then copy the output to stdout
        if [[ -e $outputfile ]]                                             
        then                                                                
            cat $outputfile                                                 
            if [[ -z $savefile ]]                                           
            then                                                            
                rm -f $outputfile               # don't save the output     
            fi                                                              
        else                                                                
            # This will print the error SRC encountered
            exec ${basepath}/${basecmd}_c $args                                 
            exit
        fi                                                                  
fi
exit $rc