
;Installer script for CrackPatch Version 1.0 - © 1996 Preacher / Crux !

;=============================================================================
; English strings (default language)

(if (= @language "english")
(
(set default_lang 0)

(set #low-user-level
(cat "\nCrackPatch installation requires at least the \"Average\" user level.\n\n"
     "Restart installation and select appropriate user level."
))

(set #mess-obsoletekick
(cat "CrackPatch requires AmigaDOS V 3.0+.\n"
))

(set #mess-nomui
(cat "\nCrackPatch requires MUI.\nNo muimaster.library found.\n\n"
     "Sorry, can not continue installation"
))

(set #mess-oldmui
(cat "\nCrackPatch requires MUI V 3.2+.\n\n"
     "That means muimaster.library ver 13.686\n"
     "You have version %ld.%ld\n\n"
     "Sorry, can not continue installation"
))

(set #prompt-renamemaindir
(cat "\nOld installation of CrackPatch found !\n\nRenaming >CrackPatch< to >CrackPatch_Old<."
))

(set #prompt-deleteoldprefs
(cat "\nOld preferences found !\n\nDeleting >CrackPatch.prefs<."
))

(set #which-directory
(cat "Where do you want to install CrackPatch ?\n(A drawer named \"CrackPatch\" will be created)"
))

(set #which-language
(cat "\nWhich languages should be installed ?"
))

(set #mess-extractmain
(cat "\nExtracting main package ..."
))

(set #prompt-installexecutables
(cat "\nWhich executables should be installed ?"
))

(set #prompt-installdocuments
(cat "\nWhich documents should be installed ?"
))

(set #prompt-installpatchbase
(cat "\nWhich patchbases should be installed ?"
))

(set #prompt-installextra
(cat "\nWhich extra stuff should be installed ?"
))

(set #confirm-installxpk
(cat "\n\nShould i install the XPK package ?"
))

(set #mess-extractxpk
(cat "\nExtracting XPK package ..."
))

(set #prompt-installxpk
(cat "\nWhich XPK parts should be installed ?\n\n"
))

(set #confirm-installxfd
(cat "\n\nShould i install the XFD package ?"
))

(set #mess-extractxfd
(cat "\nExtracting XFD package ..."
))

(set #prompt-installxpk
(cat "\nWhich XPK parts should be installed ?\n\n"
))

(set #mess-congrat
(cat "\nCrackPatch was successfully installed !\n\n"
))

))

;=============================================================================
; German strings

(if (= @language "deutsch")
(
(set default_lang 1)

(set #low-user-level
(cat "\nDie Installation von CrackPatch benötigt mindestens \"Average\" als User Level.\n\n"
"Starten Sie die Installation neu und wählen sie ein passendes User Level."
))

(set #mess-obsoletekick
(cat "CrackPatch benötigt AmigaDOS V 3.0+.\n"
))

(set #mess-nomui
(cat "\nCrackPatch benötigt MUI.\nKeine muimaster.library gefunden.\n\n"
     "Installation kann nicht fortgesetzt werden"
))

(set #mess-oldmui
(cat "\nCrackPatch benötigt MUI V 3.2+.\n\n"
     "Das bedeutet muimaster.library ver 13.686\n"
     "Sie haben Version %ld.%ld\n\n"
     "Installation kann nicht fortgesetzt werden"
))

(set #prompt-renamemaindir
(cat "\nAlte Installation von CrackPatch gefunden !\n\nBenenne ""CrackPatch"" in ""CrackPatch_Old"" um."
))

(set #prompt-deleteoldprefs
(cat "\nAlte Voreinstellungen gefunden !\n\nLösche >CrackPatch.prefs<."
))

(set #which-directory
(cat "Wohin soll CrackPatch installiert werden ?\n(Ein Verzeichnis namens \"CrackPatch\" wird erstellt )"
))

(set #which-language
(cat "\nWelche Sprachen sollen installiert werden ?"
))

(set #mess-extractmain
(cat "\nExtrahiere main package ..."
))

(set #prompt-installexecutables
(cat "\nWelche auszuführende Dateien sollen installiert werden ?"
))

(set #prompt-installdocuments
(cat "\nWelche Dokumente sollen installiert werden ?"
))

(set #prompt-installpatchbase
(cat "\nWelche Patch Datenbanken sollen installiert werden ?"
))

(set #prompt-installextra
(cat "\nWelche Extras sollen installiert werden ?"
))

(set #confirm-installxpk
(cat "\n\nSoll XPK installiert werden ?"
))

(set #mess-extractxpk
(cat "\nExtrahiere XPK package ..."
))

(set #prompt-installxpk
(cat "\nWelche Teile von XPK sollen installiert werden ?\n\n"
))

(set #confirm-installxfd
(cat "\n\nSoll XFD installiert werden ?"
))

(set #mess-extractxfd
(cat "\nExtrahiere XFD package ..."
))

(set #prompt-installxfd
(cat "\nWelche Teile von XFD sollen installiert werden ?\n\n"
))

(set #mess-congrat
(cat "\nCrackPatch wurde erfolgreich installiert !\n\n"
))

))

;=============================================================================
; variable setup

(set #installver (/ @installer-version 65536))
(set #installrev (- @installer-version (* #installver 65536)))
(set #tempversion (getversion))
(set #osversion (/ #tempversion 65536))
(set #osrevision (- #tempversion (* #osversion 65536)))



;=============================================================================
; Checking user configuration
;=============================================================================

(complete 0)

;========================================================
; check user-level

(if (< @user-level 1)
    (
     (abort (#low-user-level @app-name))
))

;========================================================
; check kickstart version

(if (< #osversion 39)
    (
     (abort #mess-obsoletekick)
))

;========================================================
; check mui (MUI 3.2 = muimaster.library V13.686)

(if (= (exists "LIBS:muimaster.library" (noreq)) 1)
    (
     (set #tempver (getversion "LIBS:muimaster.library"))
     (set #muiver (/ #tempver 65536))
     (set #muirev (- #tempver (* #muiver 65536)))
     (if (< #muiver 13)
	 (
	  (abort (#mess-oldmui #muiver #muirev))
	  )))
  ((abort #mess-nomui))
)

;=============================================================================
; where should CrackPatch be installed

(if (= (exists "Work:" (noreq)) 2)
    (set #def-dest "Work:")
    (set #def-dest "SYS:")
)

(set #directory
       (askdir
	   (prompt #which-directory)
	   (help @askdir-help)
	   (default #def-dest)
       )
)

;----------------------------------------------------------------------------
; Check for old installation

(set @default-dest (tackon #directory "CrackPatch"))

(if (> (exists @default-dest (noreq)) 0)
    ;if directory already exists, rename it
    (rename
	((tackon #directory "CrackPatch"))
	((tackon #directory "CrackPatch_Old"))
	(prompt #prompt-renamemaindir)
	(help @rename-help)
	(confirm)
    )
    ;else create main directory
    (makedir
	(@default-dest)
	(prompt #prompt-makemaindir)
	(help @makedir-help)
	(infos)
    )
)

;-----------------------------------------------------------------------------
; Check for old preferences and delete it

(if (> (exists "ENVARC:CrackPatch.prefs" (noreq)) 0)
    (
	(delete
	    ("ENVARC:CrackPatch.prefs")
	    (prompt #prompt-deleteoldprefs)
	    (help @delete-help)
	    (optional ("force"))
	    (confirm)
	)
	(delete
	    ("ENV:CrackPatch.prefs")
	    (prompt #prompt-deleteoldprefs)
	    (help @delete-help)
	    (optional ("force"))
	    ; No confirmation needed
	)
    )
)

(complete 10)

;=============================================================================
; Installing main files (executables, documentation, locale ...)
;=============================================================================

;-----------------------------------------------
; Extracting main package

(working #mess-extractmain)

(makedir ("T:Extract"))
(run "/c/unlzx x -a /data/Main.lzx T:Extract/")

;=============================================================================
; Installing language catalogs

(copyfiles
    (source "T:Extract/Main/locale/catalogs")
    (dest ("LOCALE:Catalogs"))
    (prompt #which-language)
    (help @copyfiles-help)
    (confirm)
    (infos)
    (all)
)

(complete 20)

;=============================================================================
; Installing executables

(copyfiles
    (source "T:Extract/Main/Executables")
    (dest @default-dest)
    (prompt #prompt-installexecutables)
    (help @copyfiles-help)
    (confirm)
    (infos)
    (all)
)

(complete 30)

;=============================================================================
; Installing documentation

(set #docs-dest (tackon @default-dest "Documents"))

(copyfiles
    (source "T:Extract/Main/Documents")
    (dest #docs-dest)
    (prompt #prompt-installdocuments)
    (help @copyfiles-help)
    (confirm)
    (infos)
    (all)
)

(complete 40)

;=============================================================================
; Installing patchbase

(set #patchbase-dest (tackon @default-dest "PatchBase"))

(copyfiles
    (source "T:Extract/Main/PatchBase")
    (dest #patchbase-dest)
    (prompt #prompt-installpatchbase)
    (help @copyfiles-help)
    (confirm)
    (infos)
    (all)
)

(complete 50)

;=============================================================================
; Installing extra stuff

(copyfiles
    (source "T:Extract/Main/Extra")
    (dest @default-dest)
    (prompt #prompt-installextra)
    (help @copyfiles-help)
    (confirm)
    (infos)
    (all)
)

(complete 60)

;=============================================================================
; Deleting T: stuff

(run "delete T:Extract/ all")


;=============================================================================
; Installing XPK package
;=============================================================================

;-----------------------------------------------
; Extracting xpk package

(working #mess-extractxpk)

(makedir ("T:Extract"))
(run "/c/unlzx x -a /data/XPK.lzx T:Extract/")

;=============================================================================
; Installing xpkmaster.library

(copylib
  (source "T:Extract/XPK/xpkmaster.library")
  (dest "LIBS:")
  (prompt #prompt-installxpk "xpkmaster.library")
  (help @copylib-help)
  (optional nofail force)
  (confirm)
)

(complete 70)

; Installing xpk compressor libraries

(foreach "T:Extract/XPK/Compressors" "xpk????.library" (
    (copylib
	(source (tackon "T:Extract/XPK/Compressors" @each-name))
	(dest "LIBS:Compressors")
	(prompt #prompt-installxpk @each-name)
	(help @copylib-help)
	(optional nofail force)
	(confirm)
    )
))

(complete 80)

;=============================================================================
; Deleting T: stuff

(run "delete T:Extract/ all")


;=============================================================================
; Installing XFD package
;=============================================================================

;-----------------------------------------------
; Extracting xfd package

(working #mess-extractxfd)

(makedir ("T:Extract"))
(run "/c/unlzx x -a /data/XFD.lzx T:Extract/")

;=============================================================================
; Installing xfdmaster.library

(copylib
  (source "T:Extract/XFD/xfdmaster.library")
  (dest "LIBS:")
  (prompt #prompt-installxfd "xfdmaster.library")
  (help @copylib-help)
  (optional nofail force)
  (confirm)
)

(complete 90)

; Installing xfd external libraries

(foreach "T:Extract/XFD/XFD" "#?" (
    (copylib
	(source (tackon "T:Extract/XFD/XFD" @each-name))
	(dest "LIBS:XFD")
	(prompt #prompt-installxfd @each-name)
	(help @copylib-help)
	(optional nofail force)
	(confirm)
    )
))

(complete 100)

;=============================================================================
; Deleting T: stuff

(run "delete T:Extract/ all")




;=============================================================================
; Congrats ...

(exit (#mess-congrat) )
