case $# in 0) PAR=install ; CMD=Action ;; 1) PAR="$1" ; CMD=Action ;; 2) PAR="$1" ; CMD="$2" ;; *) echo Syntax: "$0" [param [file]] ; exit 1 ;; esac if test -r "$CMD" then : else case "$CMD" in Action) echo No Action file present ;; *) echo No Action file "($CMD)" present ;; esac fi THISFILE=`pwd`/$0 SYS= RETC=0 { while read LINE do eval set $LINE case x"$1" in x#*) ;; xname) SYS="$2" ACTION='make $PAR' DIR=. FAIL='Failed for $SYS, see $DIR/Out' SUCC='$SYS -- done' ATYPE= FATAL=no DOIT=yes ;; xfatal) FATAL=yes ;; xaction|xindir) case x$ATYPE in x) ACTION=$2 ; ATYPE=$1 ;; *) echo Already specified an $ATYPE for this name RETC=-1 ;; esac ;; xfailure) FAIL="$2" ;; xsuccess) SUCC="$2" ;; xdir) DIR="$2" ;; xsystem) case `ack_sys` in $2) ;; *) echo "Sorry, $SYS can only be made on $2 systems" DOIT=no ;; esac ;; xend) case $DOIT in no) continue ;; esac case x$SYS in x) echo Missing name line; RETC=-1 ;; *) if test -d $DIR then ( cd $DIR X= case $ATYPE in indir) if sh $THISFILE $PAR $ACTION then eval echo $SUCC else RETC=2 ; eval echo $FAIL fi ;; *) if eval "$ACTION >Out 2>&1 /dev/null 1>&- 1>&3 exit $RETC ) case $? in 0) ;; *) case $RETC in 0) RETC=$? ;; esac ;; esac else echo Directory $DIR for $SYS is inaccessible RETC=-2 fi ;; esac case $FATAL$RETC in yes0) ;; yes*) echo Fatal error, installation stopped. exit $RETC ;; esac SYS= ;; *) echo Unknown keyword "$1" RETC=-3 ;; esac done } <$CMD RETX=$? case $RETX in 0) exit $RETC ;; *) exit $RETX ;; esac