; $VER: Install_PMPro V1.5 (2.11.97)
; J. Schaefer / Andreas R. Kleinert
; Modified to use LHA by Florian Zeiler
;
; 4.11.96 : now for PMPro 4 , J. Schaefer
;           LHA to PM/system
;
; 2.11.97 : GIF removed
;           NOW PMPro5: Help_Docs -> Docs_Sys
;                                Picasso96
;                                PPC-Support
;

(set @app-name "Picture Manager Professional 5 DEMO")

;Installer-Version ...

(set #wrongversion
 (cat "You have an old version of the 'Installer' "
      "on your Amiga!\n\nYou need Installer V43.3 or higher. "
      "You find it on the PMPRo Disk 1.\n\n"
      "If you have the Utility MCP installed, you must copy the installer from"
      "Disk1 to C: and deactivate MCP."
 )
)

(if (< @installer-version 2818051)
 (
  (user 2)
  (message #wrongversion)
  (exit (quiet))
 )
)

(welcome)

;Diskettennames

(set #PMDsk1 "")
(set #PMDsk2 "")
(set #PMDisk1 "")
(set #PMDisk2 "")

; OS-Version

(set #OS_VER (/ (getversion) 65536) )

(if(< #OS_VER 37)
  (abort "You need Kickstart/OS V2.04 with WB 2.1!")
)

; Installation-Path

(set #PMProDir (askdir
                  (prompt "Select destination directory ?"
                          "\n(A drawer PicManager will be created)")
                  (help @askdir-help)
                  (newpath)
                  (default "Work:")
                )
)

; No RAM Disk installation

(if(= (getdevice #PMProDir) "RAM")
    (abort "You can not install to the RAM-Disk!")
)


; GD space

(set #dskspace (getdiskspace #PMProDir))

(if(<> #dskspace -1)
 (if(< #dskspace 4000000)
     (abort "There are no 4 MB Diskspace free ("dskspace") !")
 )
)

(set #dskspace (getdiskspace "SYS:"))

(if(<> #dskspace -1)
 (if(< #dskspace 1100000)
     (abort "In the (Workbench) are less than 1Mb free ("dskspace") !")
 )
)  

; Drawer PicManager

(set #PMProPath (tackon #PMProDir "PicManager"))
(makedir (#PMProPath))

; set Path

(set @default-dest #PMProPath)

; Displaydrivers

(set #viewinstall 255)
(set #viewinstall (askoptions
              (prompt "Select displaydriver(s) to install")
              (choices "PicassoII" "Retina Z2/Z3" "Merlin" "CyberGraphX" "EGS" "OpalVision" "Picasso96")
              (default 0)
              (help (cat "Only select these driver(s)\n"
                         "you have installed the coresponding\n"
                         "GFX-card and/or the coresponding\n"
                         "driver software!"    

                    )
              )
             )
)

; Delete old files

(delete (tackon #PMProPath "Autostart.prefs"       ) (optional "force"))
(delete (tackon #PMProPath "Autostart.prefs.info"  ) (optional "force"))

(delete (tackon #PMProPath "PV.config"             ) (optional "force"))
(delete (tackon #PMProPath "PV.config.info"        ) (optional "force"))

(delete (tackon #PMProPath "PhotoView"             ) (optional "force"))
(delete (tackon #PMProPath "PhotoView.info"        ) (optional "force"))

(delete (tackon #PMProPath "PicManager.guide"      ) (optional "force"))
(delete (tackon #PMProPath "PicManager.guide.info" ) (optional "force"))

(delete (tackon #PMProPath "Graphics.log"          ) (optional "force"))
(delete (tackon #PMProPath "Graphics.log.info"     ) (optional "force"))

; NEU: create Temp Dir

(set #TempPath (tackon #PMProPath ".tempinstall"))
(makedir (#TempPath))

; Clear Temp

;

(onerror (P_CLEANUP))

(procedure P_CLEANUP
   (delete #TempPath (all) (optional "force"))
)

; ...................Diskette 1


; LHA (Copy to temp)

(copyfiles
  (source (tackon #PMDisk1 "lha"))
  (dest (#TempPath))
)

; Declare dearchive fumction

(procedure P_EXPAND #exp_path #exp_archive #exp_dest
  (set #exp_srcpath (tackon #exp_path #exp_archive))

  (if(= (exists #exp_srcpath) TRUE)
    (
     (working ("Extract '%s'" #exp_srcpath))
     (set #exp_call ("%s X \"%s\" \"%s/\"" (tackon #TempPath "LHA") #exp_srcpath #exp_dest))
     (run #exp_call)
    )
    (
     (abort (cat "On the Disk" #exp_path "is not the file " #exp_archive))
    )
  )
)

; Archive PM_1 und PM_2 ins PM-Hauptverzeichnis

(P_EXPAND #PMDisk1 "PM_1.lha" #PMProPath)
(P_EXPAND #PMDisk1 "PM_2.lha" #PMProPath)

; Piktogramm kopieren

(copyfiles
  (source (tackon #PMDisk1 "PicManager.inf"))
  (dest #PMProDir)
  (newname "PicManager.info")
  (files)
) 

; LHA ins PMPro-Systemverzeichnis kopieren


(copyfiles
  (source (tackon #PMDisk1 "lha"))
   (dest (tackon #PMProPath "System"))
) 

; ........................Diskette 2

; Archive Examples und Docs_Sys ins PM-Hauptverzeichnis

(P_EXPAND #PMDisk2 "Examples.lha" #PMProPath)
(P_EXPAND #PMDisk2 "Docs_Sys.lha" #PMProPath)

; Archive Library und Drivers ins Tempverzeichnis

(P_EXPAND #PMDisk2 "Library.lha" #TempPath)
(P_EXPAND #PMDisk2 "Drivers.lha" #TempPath)

; Libraries installieren inclusive PPC
; ------------------------------------
; evtl. vorhandene SuperView Installation umbenennen
; (Treiber, Objekte und Operatoren und Library in .bak)

(delete "libs:svobjects.bak" (all) (optional "force"))
(rename "libs:svobjects" "libs:svobjects.bak")

(delete "libs:svoperators.bak" (all) (optional "force"))
(rename "libs:svoperators" "libs:svoperators.bak")

(delete "libs:svdrivers.bak" (all) (optional "force"))
(rename "libs:svdrivers" "libs:svdrivers.bak")

(delete "libs:superview.library.bak" (optional "force"))
(rename "libs:superview.library" "libs:superview.library.bak")

(delete "libs:superviewsupport.library.bak" (optional "force"))
(rename "libs:superviewsupport.library" "libs:superviewsupport.library.bak")

; Neue SuperView incl. PPC kopieren

(makedir "LIBS:svobjects")
(makedir "LIBS:svoperators")
(makedir "LIBS:svdrivers")

(copyfiles
  (source (tackon #TempPath "libs/svobjects"))
  (dest "libs:svobjects")
  (all)
)

(copyfiles
  (source (tackon #TempPath "libs/svoperators"))
  (dest "libs:svoperators")
  (all)
)

(copyfiles
  (source (tackon #TempPath "libs/svdrivers"))
  (dest "libs:svdrivers")
  (all)
)


(copyfiles
  (source (tackon #TempPath "libs/superview.library"))
  (dest "libs:")
)

(copyfiles
  (source (tackon #TempPath "libs/superviewsupport.library"))
  (dest "libs:")
)

(copyfiles
  (source (tackon #TempPath "libs/pmoperator.library"))
  (dest "libs:")
  (optional "force")
)

; Locale und Prefs kopieren

(copyfiles
  (source (tackon #TempPath "locale"))
  (dest "sys:locale")
  (all)
)

; Verzeichnisse fr Superview anlegen

(makedir "ENV:SuperView-Library")
(makedir "ENVARC:SuperView-Library")

(copyfiles
  (source (tackon #TempPath "prefs"))
  (dest "sys:prefs")
  (all)
)

; Diese Standard-Library besonders behandeln:
; Benutzer mu besttigen

(copylib
  (source (tackon #TempPath "libs/reqtools.library"))
  (dest "libs:")
  (prompt "The reqtools.library will be overwritten with a newer version.")
  (help @copylib-help)
)


; Anzeige-Module installieren

; PICASSO II
; ----------
(if (IN #viewinstall 0)
(
 (copyfiles
   (source (tackon #TempPath "PicassoII.svdriver"))
   (dest "sys:libs/svdrivers")
 )
 (copyfiles
   (source (tackon #TempPath "PicassoII.controlpad"))
   (dest "envarc:superview-library")
 )
 (copyfiles
   (source (tackon #TempPath "PicassoII.controlpad"))
   (dest (tackon #PMProPath "Env"))
 )
))

; RETINA
; ------
(if (IN #viewinstall 1)
(
 (copyfiles
   (source (tackon #TempPath "Retina.svdriver"))
   (dest "sys:libs/svdrivers")
 )
 (copyfiles
   (source (tackon #TempPath "Retina.controlpad"))
   (dest "envarc:superview-library")
 )
 (copyfiles
   (source (tackon #TempPath "Retina.controlpad"))
   (dest (tackon #PMProPath "Env"))
 )
))  

; MERLIN
; ------
(if (IN #viewinstall 2)
(
 (copyfiles
   (source (tackon #TempPath "MERLIN.svdriver"))
   (dest "sys:libs/svdrivers")
 )
))  


; CYBERGRAPHX
; -----------
(if (IN #viewinstall 3)
(
 (copyfiles
   (source (tackon #TempPath "CyberGraphics.svdriver"))
   (dest "sys:libs/svdrivers")
 )
 (copyfiles
   (source (tackon #TempPath "CyberGraphics.controlpad"))
   (dest "envarc:superview-library")
 )
 (copyfiles
   (source (tackon #TempPath "CyberGraphics.controlpad"))
   (dest (tackon #PMProPath "Env"))
 )
))  

; EGS
; ---
(if (IN #viewinstall 4)
(
 (copyfiles
   (source (tackon #TempPath "EGS7.svdriver"))
   (dest "sys:libs/svdrivers")
 )
))  

; OPAL
; ----
(if (IN #viewinstall 5)
(
 (copyfiles
   (source (tackon #TempPath "OPAL.svdriver"))
   (dest "sys:libs/svdrivers")
 )
))

; Picasso96
; ---------
(if (IN #viewinstall 6)
(
 (copyfiles
   (source (tackon #TempPath "Picasso96.svdriver"))
   (dest "sys:libs/svdrivers")
 )
 (copyfiles
   (source (tackon #TempPath "Picasso96.controlpad"))
   (dest "envarc:superview-library")
 )
 (copyfiles
   (source (tackon #TempPath "Picasso96.controlpad"))
   (dest (tackon #PMProPath "Env"))
 )
))        



; Pfad um Schublade PicManager erweitern und Assign in User-Startup einfgen 

(startup "Picture Manager Professional"
  (prompt "Modifying S:User-Startup for PIC_MANAGER:-Assign")
  (help @startup-help)
  (command "Assign PIC_MANAGER: \"" #PMProPath "\"\n")
  (command "Assign VMEM: PIC_MANAGER:Temp\n")
  (command "if exists Libs:svppc/loadppclib\nLibs:svppc/loadppclib\nendif")

)




(P_CLEANUP)
(exit "Picture Manager Professional DEMO is installed.\nPlease reboot!")

