;$VER: akJFIF_Installer 43.26 (8.2.97)

FAILAT 21

;Check OS version!
c/akT OS 39
IF WARN
   ECHO "You need OS 3.0 or later!"
   ASK "Press return!"
   QUIT
ENDIF

;Display dt version etc!
c/akT >ENV:akver VER classes/Datatypes/akJFIF.datatype
C:RequestChoice >NIL: "Andreas Ralph Kleinert presents:" "$akver" "Install/Update"
UNSETENV akver

;Create dt prefs drawer if not found!
IF NOT EXISTS SYS:Prefs/DataTypes
   C:Makedir >NIL: SYS:Prefs/DataTypes
   C:Copy >NIL: prefs/datatypes.info SYS:Prefs/DataTypes.info CLONE
ENDIF

;Move any dtprefs to sys:prefs/datatypes!
IF EXISTS sys:prefs/akJFIFprefs
   C:Rename >NIL: sys:prefs/akJFIFprefs#? sys:prefs/datatypes
ENDIF

;Create ENV:Datatypes if not found!
IF NOT EXISTS ENV:Datatypes
   C:Makedir >NIL: ENV:Datatypes ENVARC:Datatypes
ENDIF

;Install dtprefs if not found or current one is old!
c/akT CHK prefs/datatypes/akJFIFPrefs SYS:prefs/datatypes/akJFIFPrefs
IF WARN
   C:Copy >NIL: prefs/datatypes/akJFIFPrefs#? SYS:prefs/datatypes CLONE
ENDIF

;Install correct dt!
c/akT CHK classes/datatypes/akJFIF.datatype SYS:classes/datatypes/akJFIF.datatype
IF WARN
   c/akT CPU 060
   IF NOT WARN
      C:Copy >NIL: classes/datatypes/akJFIF.datatype.060 SYS:Classes/datatypes/akJFIF.datatype CLONE
   ELSE
      c/akT CPU 040
      IF NOT WARN
         C:Copy >NIL: classes/datatypes/akJFIF.datatype.040 SYS:Classes/datatypes/akJFIF.datatype CLONE
      ELSE
         c/akT CPU 030
         IF NOT WARN
            C:Copy >NIL: classes/datatypes/akJFIF.datatype.030 SYS:Classes/datatypes/akJFIF.datatype CLONE
         ELSE
            c/akT CPU 020
            IF NOT WARN
               C:Copy >NIL: classes/datatypes/akJFIF.datatype.030 SYS:Classes/datatypes/akJFIF.datatype CLONE
            ELSE
               C:Copy >NIL: COPY classes/datatypes/akJFIF.datatype SYS:Classes/datatypes/akJFIF.datatype CLONE
            ENDIF
         ENDIF
      ENDIF
   ENDIF

   ;Move any old dt headers to storage!
   Rename >NIL: SYS:Devs/Datatypes/#?JFIF#? SYS:Storage/Datatypes/
   Rename >NIL: SYS:Devs/Datatypes/#?JPEG#? SYS:Storage/Datatypes/
   Rename >NIL: SYS:Devs/Datatypes/#?JPG#? SYS:Storage/Datatypes/

   ;Install new dt header!
   C:Copy >NIL: devs/datatypes/JFIF#? DEVS:DataTypes

   ;If VMEM assign not found, assign it and add to user-startup!
   c/akT ASN vmem
   IF WARN
      C:RequestChoice >NIL: "ak Installer" "The VMEM: assign was not found!*NIt is needed by this datatype,*Nto be used as temporary directory." "Assign"
      C:RequestFile >ENV:akvmem "SYS:" TITLE="Please select temporary dir:" SAVEMODE DRAWERSONLY NOICONS
      ECHO >>S:User-Startup "*N;BEGIN VMEM"
      ECHO >>S:User-Startup "Assign >NIL: VMEM: $akvmem"
      ECHO >>S:User-Startup ";END VMEM"
      C:Assign >NIL: VMEM: $akvmem
      UNSETENV akvmem
   ENDIF

   ;Change dir to docs!
   CD Docs

   ;Show guide and start dtprefs!
   Run >NIL: MultiView akJFIF.guide
   Run >NIL: /Prefs/DataTypes/akJFIFPrefs

   ;Install completed message!
   C:RequestChoice >NIL: "ak Installer" "Install completed!*NPlease reboot the system,*Nto use the new datatype!" "Ok"
ELSE
   ;Install not needed message!
   C:RequestChoice >NIL: "ak Installer" "Install not needed!*NYou have the same or a higher version!" "Ok"
ENDIF

;Clean up memory/free resources!
C:Avail >NIL: FLUSH
