#!/bin/bash
#
# sccl_status_package
#
# Aufruf:
#
# sccl_status_package [-p <callpar>] <resource> [<pidsig>]
#
# Bei der Resource <resource> wird für alle PRG und PRGP ein status ausgeführt
#
########################################################################################
#
. $(dirname $0)/globals.settings
#
unset CALLPARS
while getopts p:P-: op; do
  case "$op" in
   p) CALLPARS="$CALLPARS -p $OPTARG";;
   *) echo "usage: $MYPRG [-p <callpar>] <resource> [<pidsig>]"
      exit 1;;
  esac
done
shift $(( $OPTIND - 1))
#
if [[ $# -lt 1 ]]; then
  echo "usage: $MYPRG [-p <callpar>] <resource> [<pidsig>]"
  exit 1
fi
#
if [[ -f "$LOCKDIR/$1$LOCKEXTENSION" ]]; then
  PIDSIG=`grep "^$PKGPIDSIGHEADER" "$LOCKDIR/$1$LOCKEXTENSION" | cut -f 2 -d:`
  RES=`grep "^$PKGRESHEADER" "$LOCKDIR/$1$LOCKEXTENSION" | cut -f 2- -d:`
else
  if [[ -z "$FORCE" ]]; then
    echo "Das Paket $1 laeuft nicht auf $THISHOSTNAME."
    exit 0
  fi
fi
#
UPIDSIG=${2:-$PIDSIG}
#
if [[ -z "$RES" ]]; then
  if [[ ! -f $RESOURCES ]]; then
    exit 1
  fi
  S=`grep '^'$1'[[:blank:]]' $RESOURCES`
  if [[ -z "$S" ]]; then
    echo "$1 nicht in $RESOURCES gefunden."
    exit 1
  fi
  eval set $S
else
  eval set $RES
fi
#
PKGNAME=$1
shift
LONGNAME=$1
shift
if [[ "$1" = "MULTI" || "$1" = "SWITCH" ]]; then
  shift
elif [[ "$1" = "EXECUTE" ]]; then
  echo "$PKGNAME ($LONGNAME) ist ein EXECUTE Paket."
  exit 0
fi
#
RET=0
while [[ $# -gt 0 ]]
 do 
  ./sccl_status_resource $CALLPARS "$1" $PKGNAME $PIDSIG
  R=$?
  if [[ $R != 0 && $R != $LOCKNOTFOUND ]]; then
    RET=$R
  fi
  shift
done
exit $RET
