Add em22 compile, change EM machine executable format to put proc table in text
[Ack-5.5.git] / TakeAction
1 case $# in
2 0)      PAR='make install && make clean' ; CMD=Action ;;
3 1)      PAR="$1" ; CMD=Action ;;
4 2)      PAR="$1" ; CMD="$2" ;;
5 *)      echo Syntax: "$0" [command [file]] ; exit 1 ;;
6 esac
7 if test -r "$CMD"
8 then :
9 else
10         case "$CMD" in
11         Action)         echo No Action file present ;;
12         *)              echo No Action file "($CMD)" present ;;
13         esac
14 fi
15 case $0 in
16 /*)     THISFILE=$0
17         ;;
18 *)      if [ -f $0 ]
19         then
20                 THISFILE=`pwd`/$0
21         else
22                 THISFILE=$0
23         fi
24         ;;
25 esac
26 SYS=
27 RETC=0
28 { while read LINE
29 do
30         eval set $LINE
31         case x"$1" in
32         x!*)    ;;
33         xname)          SYS="$2"
34                         ACTION='$PAR'
35                         DIR=.
36                         FM=no
37                         FAIL='Failed for $SYS, see $DIR/Out'
38                         SUCC='$SYS -- done'
39                         ATYPE=
40                         FATAL=no
41                         DOIT=yes
42                         ;;
43         xfatal)         FATAL=yes ;;
44         xaction|xindir) case x$ATYPE in
45                         x)      ACTION=$2 ; ATYPE=$1
46                                 case $ATYPE$FM in
47                                 indirno) FAIL='Failed for $SYS' ;;
48                                 esac
49                                 ;;
50                         *)      echo Already specified an $ATYPE for this name
51                                 RETC=65 ;;
52                         esac ;;
53         xfailure)       FM=yes 
54                         FAIL="$2" ;;
55         xsuccess)       SUCC="$2" ;;
56         xdir)           DIR="$2" ;;
57         xsystem)        PAT="$2"
58                         oIFS=$IFS
59                         IFS="|"
60                         eval set $2
61                         case x`ack_sys` in
62                         x$1|x$2|x$3|x$4|x$5|x$6|x$7)    ;;
63                         *)      echo "Sorry, $SYS can only be made on $PAT systems"
64                                 DOIT=no
65                                 ;;
66                         esac
67                         IFS=$oIFS
68                         ;;
69         xend)           case $DOIT in
70                         no)     continue ;;
71                         esac
72                         case x$SYS in
73                         x)      echo Missing name line; RETC=65 ;;
74                         *)      if test -d $DIR
75                                 then (
76                                     cd $DIR
77                                     X=
78                                     case $ATYPE in
79                                     indir)      
80                                         if $THISFILE "$PAR" $ACTION
81                                         then eval echo $SUCC
82                                         else RETC=2 ; eval echo $FAIL
83                                         fi ;;
84                                     *)
85                                         case "$ACTION" in
86                                         '$PAR')
87                                                 ACTION="$PAR"
88                                             ;;
89                                         *)  ;;
90                                         esac
91                                         if [ -f No$CMD ]
92                                         then
93                                             x=`cat No$CMD`
94                                             if [ "$ACTION" = "$x" ]
95                                             then
96                                                 ACTION='echo "No actions performed, No$CMD file present"'
97                                                 SUCC='$SYS -- skipped'
98                                             fi
99                                         fi
100                                         if eval "{ $ACTION ; } >Out 2>&1 </dev/null"
101                                         then    eval echo $SUCC
102                                                 if [ "$SUCC" = '$SYS -- skipped' ]
103                                                 then :
104                                                 else echo "$ACTION" > No$CMD 2>/dev/null
105                                                 fi
106                                         else RETC=1 ; X=: ; eval echo $FAIL
107                                         fi
108                                         ;;
109                                     esac
110                                     (echo ------- `pwd`
111                                      cat Out
112                                      $X rm -f Out
113                                     ) 2>/dev/null 1>&- 1>&3
114                                     exit $RETC
115                                 )
116                                 case $? in
117                                 0) ;;
118                                 *) case $RETC in
119                                    0) RETC=$? ;;
120                                    esac ;;
121                                 esac
122                                 else
123                                       echo Directory $DIR for $SYS is inaccessible
124                                       RETC=66
125                                 fi ;;
126                         esac
127                         case $FATAL$RETC in
128                         yes0)   ;;
129                         yes*)   echo Fatal error, installation stopped.
130                                 exit $RETC ;;
131                         esac
132                         SYS=
133                         ;;
134         *)              echo Unknown keyword "$1"
135                         RETC=67 ;;
136         esac
137 done
138 exit $RETC
139 } <$CMD
140 RETX=$?
141 case $RETX in
142 0)      exit $RETC ;;
143 *)      exit $RETX ;;
144 esac