123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- #!/bin/sh
- case $# in
- 0) PAR='make install && make clean' ; CMD=Action ;;
- 1) PAR="$1" ; CMD=Action ;;
- 2) PAR="$1" ; CMD="$2" ;;
- *) echo Syntax: "$0" [command [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
- case $0 in
- /*) THISFILE=$0
- ;;
- *) if [ -f $0 ]
- then
- THISFILE=`pwd`/$0
- else
- THISFILE=$0
- fi
- ;;
- esac
- SYS=
- RETC=0
- { while read LINE
- do
- eval set $LINE
- case x"$1" in
- x!*) ;;
- xname) SYS="$2"
- ACTION='$PAR'
- DIR=.
- FM=no
- 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
- case $ATYPE$FM in
- indirno) FAIL='Failed for $SYS' ;;
- esac
- ;;
- *) echo Already specified an $ATYPE for this name
- RETC=65 ;;
- esac ;;
- xfailure) FM=yes
- FAIL="$2" ;;
- xsuccess) SUCC="$2" ;;
- xdir) DIR="$2" ;;
- xsystem) PAT="$2"
- oIFS=$IFS
- IFS="|"
- eval set $2
- case x`ack_sys` in
- x$1|x$2|x$3|x$4|x$5|x$6|x$7) ;;
- *) echo "Sorry, $SYS can only be made on $PAT systems"
- DOIT=no
- ;;
- esac
- IFS=$oIFS
- ;;
- xend) case $DOIT in
- no) continue ;;
- esac
- case x$SYS in
- x) echo Missing name line; RETC=65 ;;
- *) if test -d $DIR
- then (
- cd $DIR
- X=
- case $ATYPE in
- indir)
- if $THISFILE "$PAR" $ACTION
- then eval echo $SUCC
- else RETC=2 ; eval echo $FAIL
- fi ;;
- *)
- case "$ACTION" in
- '$PAR')
- ACTION="$PAR"
- ;;
- *) ;;
- esac
- if [ -f No$CMD ]
- then
- x=`cat No$CMD`
- if [ "$ACTION" = "$x" ]
- then
- ACTION='echo "No actions performed, No$CMD file present"'
- SUCC='$SYS -- skipped'
- fi
- fi
- if eval "{ $ACTION ; } >Out 2>&1 </dev/null"
- then eval echo $SUCC
- if [ "$SUCC" = '$SYS -- skipped' ]
- then :
- else echo "$ACTION" > No$CMD 2>/dev/null
- fi
- else RETC=1 ; X=: ; eval echo $FAIL
- fi
- ;;
- esac
- (echo ------- `pwd`
- cat Out
- $X rm -f Out
- ) 2>/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=66
- fi ;;
- esac
- case $FATAL$RETC in
- yes0) ;;
- yes*) echo Fatal error, installation stopped.
- exit $RETC ;;
- esac
- SYS=
- ;;
- *) echo Unknown keyword "$1"
- RETC=67 ;;
- esac
- done
- exit $RETC
- } <$CMD
- RETX=$?
- case $RETX in
- 0) exit $RETC ;;
- *) exit $RETX ;;
- esac
|