; $VER: AView.install 1.00 (02.09.96)
; Install script for AFind (Workbench 2.0 or higher)
;
(COMPLETE 0)
;(USER 2)
(SET #ApplicationName "AView")
(SET #ApplicationDir "sys:tools/")
;(SET #ApplicationDir "ram:")
(SET #ArchiveDir "/")
(SET #Language -1)
(SET #Documents -1)
(SET #ApplicationKeyfile (CAT #ApplicationName ".key"))

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

(IF (= @language "deutsch")
(
(SET default_lang 2)

(SET #bad-kick "Sie benötigen Workbench 2.0 oder größer")
(SET #bad-installer
(CAT "Achtung! Es ist eine alte Version des Programmes 'Installer' "
     "auf Ihrem Amiga!\n\nDie Installation benötigt mindestens Installer 42.9.\n\n"
     "Bitte überprüfen Sie Ihre Konfiguration!\n"
     "Wenn Sie fortfahren, wird eine Vollinstallation vorgenommen, das heißt\n"
     "es werden alle Kataloge,Anleitungen und die OS2.0+ Version installiert.\n"
     "%s ist auch dann voll einsatzfähig!"
))

(SET #App-InstallMsg
(CAT "\n\%s Installationsskript.\n"
        "Dieses Skript installiert %s auf Ihrem Amiga.\n\n"
        "Lesen Sie das Anleitungs-File für weitere Informationen\n"
        " über den Vertrieb von %s.\n\n"
        "%s © 1995-96 Guido Mersmann\n"
        "All Rechte reserviert."
))

(SET #App-Where
(CAT "Wo möchten Sie %s installieren ?\n"
        "(Ein Verzeichnis wird angelegt)"
))

(SET #App-Update
(CAT "\nEin %s-Verzeichnis existiert im ausgewählen"
        " Verzeichnis. Wenn Sie fortfahren,"
        " bestätigen Sie, daß Sie die alte %s-Installation"
        " mit der neuesten Version updaten wollen.\n"
        "Verschiedene %s-Dateien (z.B Prefs) werden falls nötig überschrieben!"
))

(SET #App-Main "Welche Version von %s möchten Sie installieren?")
(SET #App-Main-help
(CAT "Die OS2.0+ Version läuft unter allen Systemen ab OS2.0."
     " Die OS2.1+ Version hat den Nutzen, daß sie weniger Resourcen"
     " benutzt, wenn sich %s im Hintergrund befindet. Dazu MUß"
     " die Locale.library eingebunden sein. Für die OS3.0+ gilt das selbe"
     " wie für die OS2.1 Verison. Es werden OS3.0+ Routinen benutzt, die"
     " weiteren Speicher sparen."
))

(SET #App-Language "Welche Sprachen sollen installiert werden ?")

(SET #App-Language-help
(CAT "\nDer Amiga kann in vielen verschiedenen Sprachen"
         " arbeiten. Um Plattenkapazität zu sparen können Sie"
         " nur die Sprachen anwählen, die sie benötigen"
         " Haken Sie also einfach die Sprachen ab, die Sie"
         " Ihrem System zugänglich machen wollen."
          @askoptions-help
))

(SET #App-Docs "Welche Anleitungs- und Informationsdateien wollen Sie installieren ?")

(SET #startup-prompt    "Jetzt werden für %s folgende Eintragungen in die S:User-Startup gemacht:\n\n%s")


(SET #App-Exit "\n%s installiert !!")


))

;=============================================================================
; English strings

(IF (<> @language "deutsch")
(
(SET default_lang 4)

(SET #bad-kick "You must have at least Workbench 2.0+")
(SET #bad-installer
(CAT "You have an old version of the program 'Installer' "
     "on your Amiga!\n\nThe installation procedure needs at least Installer 42.9.\n\n"
     "Please check your configuration!\n\n"
     "If you proceed the whole archive will be installed.\n"
     "%s will work without any restrictions!"
))

(SET #App-InstallMsg
(CAT "\n\%s installation script.\n"
        "This script installs %s on your Amiga.\n\n"
        "Read the DOK-file for more information\n"
        " on the distribution of %s.\n\n"
        "%s © 1995-96 Guido Mersmann\n"
        "All rights reserved."
))

(SET #App-Where
(CAT "Where would you like to install %s ?\n"
        "(A drawer will be created)"
))

(SET #App-Update
(CAT "\nA %s drawer does already exist in the selected "
        " directory. By selecting \"Proceed\", you"
        " indicate that you want to update the %s"
        " installation with the most recent version.\n"
        "Several %s specific files will be overwritten!"
))

(SET #App-Main "Which %s version should be installed ?")
(SET #App-Main-help
(CAT "The OS2.0+ version should only be used on Systems with OS2."
     " The OS2.1+ and the OS3.0+ version need less Memory. Locale is required!"
     " Special OS3.0+ functions are used to save more memory."
))

(SET #App-Language "Which languages should be installed ?")
(SET #App-Language-help
(CAT "\nThe Amiga can be operated in many different"
          " languages."
          "To reduce the amount of space consumed by the"
          " language files, you can select to have only the"
          " files of specific languages copied.\n\n"
          "Simply check the boxes of the languages you wish"
          " to have available on your system.\n\n"
          @askoptions-help
))

(SET #App-Docs "Which Amiga-guide files should be installed ?")

(SET #startup-prompt    "Some lines need to be added to S:User-Startup for %s\n\n%s")

(SET #App-Exit "\n%s installed !!")


))
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	P_Requirements
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_Requirements
; Workbench 37 or better required
(IF (< (/ (getversion) 65536) 37)
(
  (abort #bad-kick)
)
)
; Installer 42.9 or better required
(if (< @installer-version 2752521)
  (
(user 2)
    (message (#bad-installer #ApplicationName))
    (welcome)

;---- Simple Copy all ask
(SET #ApplicationDir
        (TACKON
                (ASKDIR
                        (PROMPT (#App-Where #ApplicationName))
                        (HELP @askdir-help)
                        (default #ApplicationDir)
                )
                #ApplicationName
        )
)
(MAKEDIR #ApplicationDir (INFOS))
(MAKEDIR (TACKON #ApplicationDir "Prefs"))
                   (COPYFILES
	(SOURCE "/")
	(DEST #ApplicationDir)
	(HELP @copyfiles-help)
	(OPTIONAL <force>)
	(ALL)
	(INFOS)
                   )
(STARTUP #ApplicationName
     (SET #dummy (cat "Path add Path " #ApplicationDir))
      (HELP @startup-help)
      (PROMPT (#startup-prompt #ApplicationName #dummy))
      (COMMAND #dummy)
)
    (exit (quiet))
  )
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	Ask for Catalogs
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_AskCatalogs #Language

(SET #Dummy     (ASKOPTIONS
                (PROMPT #App-Language)
                (HELP #App-Language-help)
                (CHOICES
                        "English"
                        "Deutsch"
                        "Français")
                (DEFAULT #Language)
        )
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	Copy Selected Catalogs
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_CopyCatalogs #Language
(SET n 0)
(SET #DestinationRoot (TACKON #ApplicationDir "Catalogs"))
(SET #SourceRoot (TACKON #ArchiveDir "Catalogs"))
(MAKEDIR #DestinationRoot)

(while (< n 3)
        (SET #Dummy (SELECT n "english" "deutsch" "français"))
        (
                (IF (IN #Language n)
                (
	(MAKEDIR (TACKON #DestinationRoot #Dummy))
                        (COPYFILES
                                (SOURCE (TACKON #SourceRoot #Dummy))
                                (DEST (TACKON #DestinationRoot #Dummy))
                                (HELP @copyfiles-help)
                                (ALL)
                        )
                )
                )
        )
(SET n (+ n 1))
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	Ask for docs
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_AskDocs #Documents
(SET #Dummy             (ASKOPTIONS
                        (PROMPT #App-Docs)
                        (HELP @askoptions-help)
                        (CHOICES
                		;"english"
                		"deutsch"
                        )
                        (DEFAULT #Documents)
                  )
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	Copy docs
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_CopyDocs #Documents
(SET n 0)
(SET #DestinationRoot (TACKON #ApplicationDir "Docs"))
(SET #SourceRoot (TACKON #ArchiveDir "Docs"))
(MAKEDIR #DestinationRoot)

(while (< n 1)
        (SET #Dummy (SELECT n
		;"english"
		"deutsch"
	)
        )
        (
                (IF (IN #Documents n)
                (
	(MAKEDIR (TACKON #DestinationRoot #Dummy))
                        (COPYFILES
                                (SOURCE (TACKON #SourceRoot #Dummy))
                                (DEST (TACKON #DestinationRoot #Dummy))
                                (HELP @copyfiles-help)
                                (INFOS)
                                (ALL)
                        )
                )
                )
        )
(SET n (+ n 1))
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	Copy_Dir (Dir)
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_CopyDir #Dummy

(SET #DestinationRoot (TACKON #ApplicationDir #Dummy))
(SET #SourceRoot (TACKON #ArchiveDir #Dummy))
(MAKEDIR #DestinationRoot)

                   (COPYFILES
	(SOURCE #SourceRoot)
	(DEST #DestinationRoot)
	(HELP @copyfiles-help)
	(OPTIONAL <force>)
	(ALL)
	(INFOS)
                   )
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	Copy_File (Name)
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_CopyFile #Dummy

(if (<> (exists (TACKON #ArchiveDir #Dummy) (noreq)) 0) 
(
                   (COPYFILES
	(SOURCE (TACKON #ArchiveDir #Dummy))
	(DEST #ApplicationDir)
	(HELP @copyfiles-help)
	(OPTIONAL <force>)
	(ALL)
	(INFOS)
                   )
)
) ;If
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	GetApplicationDir
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_GetApplicationDir #Dummy

(SET #ApplicationDir
        (TACKON
                (ASKDIR
                        (PROMPT (#App-Where #ApplicationName))
                        (HELP @askdir-help)
                        (default #Dummy)
                )
                #ApplicationName
        )
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	P_Update
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_Update
(if (= (exists #ApplicationDir) 2)
        (message (#App-Update #ApplicationName #ApplicationName #ApplicationName))
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	P_AskBinary
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_AskBinary
(set #Dummy (/ (getversion) 65536))

(if (= #Dummy 37) (set #Binary 0))
(if (= #Dummy 38) (set #Binary 1))
(if (> #Dummy 38) (set #Binary 2))

(set #Binary (askchoice
	(prompt (#App-Main #ApplicationName))
	(help (#App-Main-help #ApplicationName))
	(choices
	"OS2.0+"
                       	"OS2.1+"
                       	"OS3.0+"
                        )
	(default #Binary)
            )
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	P_CopyBinary
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_CopyBinary #Dummy

(set #BinaryName (SELECT #Binary #Dummy (CAT "Bin/" #Dummy "_OS21") (CAT "Bin/" #Dummy "_OS30")))
(copyfiles
        (source (tackon #ArchiveDir #BinaryName) (infos))
        (dest #ApplicationDir)
        (newname #Dummy)
        (help @copyfiles-help)
        (optional <force>)
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	P_KeyFile
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_KeyFile

(SET #Dummy (tackon (tackon #ArchiveDir "Keyfile") #ApplicationKeyfile))

(if (<> (exists #Dummy (noreq)) 0) ((P_CopyDir "KeyFile"))
)
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	P_CopyArchiveIcon
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(PROCEDURE P_CopyArchiveIcon
                   (COPYFILES
	(SOURCE (CAT (CAT (TACKON #ArchiveDir "/") #ApplicationName) ".info"))
	(DEST (TACKON #ApplicationDir "/"))
	(HELP @copyfiles-help)
                   )
) ;PROCEDURE
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;	MAIN
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
(P_Requirements)
(message (#App-installmsg #ApplicationName #ApplicationName #ApplicationName #ApplicationName))
(welcome)

 (SET #ApplicationDir (P_GetApplicationDir #ApplicationDir))

(COMPLETE 1)
 (P_Update)
 (SET #Binary (P_AskBinary))
(COMPLETE 2)
 (SET #Language (P_AskCatalogs #Language))
(COMPLETE 3)
 (SET #Documents (P_AskDocs #Documents))
(COMPLETE 4)

;***** Delete old Data and Prefs
(MAKEDIR #ApplicationDir)
(MAKEDIR (TACKON #ApplicationDir "Prefs"))

(COMPLETE 10)
 (P_CopyBinary #ApplicationName)
(COMPLETE 20)
 (P_CopyBinary "AViewPrefs")
(COMPLETE 30)
 (P_CopyCatalogs #Language)
(COMPLETE 40)
 (P_CopyDocs #Documents)
(COMPLETE 60)
 (P_CopyDir "Data")
 (P_Keyfile)
(COMPLETE 70)
 (P_CopyArchiveIcon)
 (P_CopyFile "AViewPrefs.info")
 (P_CopyFile "Docs.info")
(COMPLETE 80)
(STARTUP #ApplicationName
     (SET #dummy (cat "Path add Path " #ApplicationDir))
      (HELP @startup-help)
      (PROMPT (#startup-prompt #ApplicationName #dummy))
      (COMMAND #dummy)
)
(DELETE (TACKON #ApplicationDir "Data.info"))

(run "avail Flush")

(COMPLETE 100)

;(exit #App-exit)
