.KEY SOURCE/A,REVNAME/A,INIT/S,M2/S,C/S,OBERON/S,ASM/S,AREXX/S,AMIGADOS/S,PAREXARGS/F
.BRA {
.KET }

; PARex v3.xx program script: "AutoVERS"
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~
; Update: 16-Nov-93

; $VER: AutoVERS 39.027 (16.11.93) PARex v3.xx auto source version updating.

; This is just a simple example of how to construct a version updating system with
; the help of PARex.

ECHO "*ec*e[1mPARex AutoVERS 39.027*e[0m"  NOLINE

; ---------------

FAILAT 21

IF {INIT}

   RESIDENT >NIL: C:SETENV     ; ##!!!## remove this line if SETENV is already resident!

   IF {M2}
      SETENV pavLANG M2
   ELSE
      IF {C}
         SETENV pavLANG C
      ELSE
         IF {OBERON}
            SETENV pavLANG OBERON
         ELSE
            IF {ASM}
               SETENV pavLANG ASM
            ELSE
               IF {AREXX}
                  SETENV pavLANG AREXX
               ELSE ; default=AMIGADOS
                  SETENV pavLANG AMIGADOS
               ENDIF
            ENDIF
         ENDIF
      ENDIF
   ENDIF

   ECHO "  ### $pavLANG-HEADER INSTALLATION, PROJECT:"

   SETENV >NIL: pavFILENAME {REVNAME}
   SETENV >NIL: pavRELEASE _.__ 
   SETENV >NIL: pavVERSION __
   SETENV >NIL: pavREVISION _
   SETENV >NIL: pavAUTHOR _
   SETENV >NIL: pavCOPYRIGHT _
   SETENV >NIL: pavTRANSLATOR _

   LAB Init

      ECHO "*n      FILENAME       : $pavFILENAME*n*eM      FILENAME       : " NOLINE
                                   SETENV >NIL: pavFILENAME ?
      ECHO "      RELEASE (x.xx) : $pavRELEASE*n*eM      RELEASE (x.xx) : " NOLINE
                                   SETENV >NIL: pavRELEASE ?
      ECHO "      VERSION   (xx) : $pavVERSION*n*eM      VERSION   (xx) : " NOLINE
                                   SETENV >NIL: pavVERSION ?
      ECHO "      REVISION (xxx) : $pavREVISION*n*eM      REVISION (xxx) : " NOLINE
                                   SETENV >NIL: pavREVISION ?
      ECHO "      AUTHOR         : $pavAUTHOR*n*eM      AUTHOR         : " NOLINE
                                   SETENV >NIL: pavAUTHOR ?
      ECHO "      COPYRIGHT      : $pavCOPYRIGHT*n*eM      COPYRIGHT      : " NOLINE
                                   SETENV >NIL: pavCOPYRIGHT ?
      ECHO "      TRANSLATOR     : $pavTRANSLATOR*n*eM      TRANSLATOR     : " NOLINE
                                   SETENV >NIL: pavTRANSLATOR ?

   ASK  "*n      Are these entries correct (y/n) ? "

   IF NOT WARN
      SKIP Init BACK
   ENDIF

   ECHO "*n      Installing..." NOLINE

   RESIDENT >NIL: C:COPY     ; ##!!!## remove this line if COPY is already resident!

   COPY >NIL: ENV:pavREVISION ENV:{REVNAME}.pav
   COPY >NIL: ENV:pavREVISION ENVARC:{REVNAME}.pav

   PAREX SILENT FROM PAREX:AutoVERSFiles/BlankSource_$pavLANG TO T:pavTEMP INIT &FILE:PAREX:AutoVERSFiles/Header_$pavLANG&
   PAREX SILENT FROM T:pavTEMP TO {SOURCE} SCRIPT PAREX:AutoVERS.pxs MODE init

   RESIDENT >NIL: C:EVAL     ; ##!!!## remove this line if EVAL is already resident!
   RESIDENT >NIL: C:DELETE   ; ##!!!## remove this line if DELETE is already resident!

   DELETE >NIL: ENV:pav#?
   DELETE >NIL: T:pavTEMP

   ECHO "finished!*n"

ELSE

   ECHO "  ### {REVNAME}-HEADER UPDATE."

   IF NOT EXISTS ENV:{REVNAME}.pav
      SETENV >NIL: pavREVISION 0
   ELSE
      EVAL <ENV:{REVNAME}.pav >NIL: TO=ENV:pavREVISION value2=1 op=+ LFORMAT="%N" ?
   ENDIF

   COPY >NIL: ENV:pavREVISION TO ENV:{REVNAME}.pav
   COPY >NIL: ENV:pavREVISION TO ENVARC:{REVNAME}.pav  ; remove if ENVARC: doesn't exist

   PAREX SILENT FROM {SOURCE} TOUCH 1000 SCRIPT PAREX:AutoVERS.pxs MODE update ; (1000 bytes should be enough!)

ENDIF


