;Emperor install script Version 3.2 (20.11.2000)
;written by Matthias Gietzelt
;Copyright by Matthias Gietzelt © 2000
;All right reserved

;**PREPARE INSTALL**

(set #lang 0)
(if (= "deutsch" @language)
    (
        (set #lang 1)

        (set #MSG_OS35          "Emperor benötigt mindestens AmigaOS 3.5 !")

        (set #MSG_WELCOME1 (cat "\nWillkommen bei der Installation von Emperor !\n"
                                "Emperor ist eine objekt-orientierte Programmiersprache.\n\n"
                                "Vielen Dank das Sie dieses Programmpaket ausprobieren möchten.\n\n"
                                "Emperor benötigt die Amiga Developer CD 2.1\n"
                                "von der Haage & Partner GmbH, um arbeiten zu können.\n"
                                "Dieses beinhaltet z.B. einen C/C++-Compiler und die Unterstützung\n"
                                "zur Softwareentwicklung für das neue AmigaOS 3.5."))

        (set #MSG_WELCOME2 (cat "\nWeiterhin benötigt Emperor folgende Dateien:\n\n"
                                "CatComp von der Developer CD 2.1\n"
                                "(ADCD_2.1:NDK/NDK_3.5/Tools/CatComp)\n\n"
                                "StormC von der Developer CD 2.1\n"
                                "(ADCD_2.1:Contributions/Haage_&_Partner/StormC/)\n\n"
                                "xen.font in der Größe 8 installiert im Fonts:-Verzeichnis\n"))

        (set #MSG_ALREADY_ASSIGNED1 "Sie haben bereits eine Kopie von \"Emperor\" installiert !\n\ninstallierte Version: ")
        (set #MSG_ALREADY_ASSIGNED2 "\nzu installierende Version: 3.2\n\nin Pfad:\n")
        (set #MSG_ALREADY_ASSIGNED3 "\n\nMöchten Sie einen anderen Pfad benutzen ?")
        (set #MSG_ALREADY_ASSIGNED_BUTTON1 "Ja")
        (set #MSG_ALREADY_ASSIGNED_BUTTON2 "Nein")

        (set #MSG_DEST         "Wo möchten Sie Emperor installieren ?\nEin Verzeichnis \"Emperor\" wird automatisch erzeugt !")

        (set #MSG_GUIDE        "\nBevor Sie mit der Installation beginnen,\n sollten Sie das \"Emperor.guide\" lesen !")
        (set #MSG_GUIDE_NOW    "Jetzt lesen !")
        (set #MSG_GUIDE_DONE   "Bereits erledigt !")

        (set #MSG_WHAT         "Welche Programmteile möchten Sie installieren ?")
        (set #MSG_WHAT_PROGGY  "Emperor Programm")
        (set #MSG_WHAT_DOCU    "Emperor Dokumentation")
        (set #MSG_WHAT_CONFIG  "Emperor Konfigurationsdatei")
        (set #MSG_WHAT_CATALOG "Emperor Katalog (deutsch)")
        (set #MSG_WHAT_PROJECT "Emperor Beispielprojekte")
        (set #MSG_WHAT_SCRIPTS "Emperor Skripte")

        (set #MSG_DOC          "Die Dokumentation ist in deutsch\nund englisch verfügbar.\n\nBitte wählen Sie die gewünschte Sprache aus !")
        (set #MSG_DOC_GERMAN   "Deutsch")
        (set #MSG_DOC_ENGLISH  "Englisch")

        (set #MSG_MAKEDIR      "Erzeuge Verzeichnis für Emperor ...")
        (set #MSG_COPY_ICON    "Kopiere Piktogramm ...")
        (set #MSG_COPY_PROGGY  "Kopiere Hauptprogramm ...")
        (set #MSG_COPY_DOCU    "Kopiere Dokumentation ...")
        (set #MSG_COPY_CONFIG  "Kopiere Konfigurationsdatei ...")
        (set #MSG_COPY_CATALOG "Kopiere Katalog (deutsch) ...")
        (set #MSG_COPY_PROJECT "Kopiere Beispielprojekte ...")
        (set #MSG_COPY_SCRIPTS "Kopiere Skripte ...")
        (set #MSG_COPY_README  "Kopiere Readme ...")
        (set #MSG_COPY_PICTURE "Kopiere Startbild ...")

        (set #MSG_STARTUP      "\nUm Emperor korrekt arbeiten zu lassen, sind\n Änderungen in der User-Startup notwendig:\n\n")

        (set #MSG_NOHELP       "Leider ist keine Hilfe verfügbar !\nFalls sich Probleme ergeben,\nmailen Sie mir einfach: joachim.gietzelt@klinikum-sn.de")
        (set #MSG_DONE         "\nInstallation abgeschlossen !\n\nViel Spaß bei der Softwareentwicklung mit Emperor !")
    )
)

(if (= 0 #lang)
    (
        (set #MSG_OS35          "Emperor needs at least AmigaOS 3.5 !")

        (set #MSG_WELCOME1 (cat "\nWelcome to the installation of Emperor !\n"
                                "Emperor is an object-oriented programming-language.\n\n"
                                "Thank you for testing this program-packet.\n\n"
                                "Emperor needs the Amiga Developer CD 2.1\n"
                                "of Haage & Partner GmbH, to work properly.\n"
                                "This CD includes e.g. an C/C++-Compiler and the support\n"
                                "for developing of software for the new AmigaOS 3.5."))

        (set #MSG_WELCOME2 (cat "\nEmperor needs following files:\n\n"
                                "CatComp from the Developer CD 2.1\n"
                                "(ADCD_2.1:NDK/NDK_3.5/Tools/CatComp)\n\n"
                                "StormC from the Developer CD 2.1\n"
                                "(ADCD_2.1:Contributions/Haage_&_Partner/StormC/)\n\n"
                                "xen.font in size 8 installed in the Fonts:-directory\n"))

        (set #MSG_ALREADY_ASSIGNED1 "You have got already a copy of \"Emperor\" installed !\n\ninstalled version: ")
        (set #MSG_ALREADY_ASSIGNED2 "\nversion to install: 3.2\n\nin path:\n")
        (set #MSG_ALREADY_ASSIGNED3 "\n\nDo you want to take another path ?")
        (set #MSG_ALREADY_ASSIGNED_BUTTON1 "Yes")
        (set #MSG_ALREADY_ASSIGNED_BUTTON2 "No")

        (set #MSG_DEST         "Where do you want to install Emperor ?\nA drawer called \"Emperor\" will be created automatically !")

        (set #MSG_GUIDE        "\nYou should start installation only after having read \"Emperor.guide\" !")
        (set #MSG_GUIDE_NOW    "Read now !")
        (set #MSG_GUIDE_DONE   "Already done !")

        (set #MSG_WHAT         "What do you want to install ?")
        (set #MSG_WHAT_PROGGY  "Emperor main program")
        (set #MSG_WHAT_DOCU    "Emperor documentation")
        (set #MSG_WHAT_CONFIG  "Emperor configuration file")
        (set #MSG_WHAT_CATALOG "Emperor german catalog")
        (set #MSG_WHAT_PROJECT "Emperor example project")
        (set #MSG_WHAT_SCRIPTS "Emperor scripts")

        (set #MSG_DOC          "The documentation is available in\ngerman and english.\n\nChoose the one you'd like!")
        (set #MSG_DOC_GERMAN   "German")
        (set #MSG_DOC_ENGLISH  "English")

        (set #MSG_MAKEDIR      "Creating directory for Emperor ...")
        (set #MSG_COPY_ICON    "Copying icon ...")
        (set #MSG_COPY_PROGGY  "Copying main program ...")
        (set #MSG_COPY_DOCU    "Copying documentation ...")
        (set #MSG_COPY_CONFIG  "Copying configuration file ...")
        (set #MSG_COPY_CATALOG "Copying german catalog ...")
        (set #MSG_COPY_PROJECT "Copying exampleprojects ...")
        (set #MSG_COPY_SCRIPTS "Copying scripts ...")
        (set #MSG_COPY_README  "Copying readme ...")
        (set #MSG_COPY_PICTURE "Copying startuppicture ...")

        (set #MSG_STARTUP      "\nTo get Emperor work well there has to be made\n some changes to your User-Startup:\n\n")

        (set #MSG_NOHELP       "No help available, sorry !\nWhen there are some problems,\nmail to: joachim.gietzelt@klinikum-sn.de")
        (set #MSG_DONE         "\nInstallation complete !")
    )
)

;**STARTING UP**

(complete 0)

(set #DOCLANGUAGE   #lang)
(set #INSTALLPATH   (getassign "Emperor" 'a'))
(set #INSTALLED     (strlen #INSTALLPATH))
(set #OSVERSION     (/ (getversion "workbench.library" (resident)) 65536))
(set #GETPATH       1)
(set #WHAT_PROGGY   1)
(set #WHAT_DOCU     2)
(set #WHAT_CONFIG   4)
(set #WHAT_CATALOG  8)
(set #WHAT_PROJECT 16)
(set #WHAT_SCRIPTS 32)
(set #WHAT         63)

(if (= 0 #lang) (set #WHAT 55))

(if (< 44 #OSVERSION) (abort #MSG_OS35))

(message #MSG_WELCOME1)
(message #MSG_WELCOME2)

;**READ DOCUMENTATION**

(if (= 1 (askbool
            (prompt  #MSG_GUIDE)
            (choices #MSG_GUIDE_NOW
                     #MSG_GUIDE_DONE
            )
            (help #MSG_NOHELP)
        )
    )
    (
        (if (= 0 #lang)
            (run "SYS:Utilities/Multiview Emperor/Emperor_english.guide")
        )
        (if (= 1 #lang)
            (run "SYS:Utilities/Multiview Emperor/Emperor_deutsch.guide")
        )
    )
)

;**CHECK FOR INSTALLED VERSION**

(complete 10)

(if (<> 0 #INSTALLED)
    (
        (set #INSTALLEDVERSION (getversion "Emperor:Emperor"))
        (set #INSTALLEDVER (/ #INSTALLEDVERSION 65536))
        (set #INSTALLEDREV (- #INSTALLEDVERSION (* #INSTALLEDVER 65536)))
        (set #GETPATH (askbool
                (prompt  #MSG_ALREADY_ASSIGNED1
                         #INSTALLEDVER
                         "."
                         #INSTALLEDREV
                         #MSG_ALREADY_ASSIGNED2
                         #INSTALLPATH
                         #MSG_ALREADY_ASSIGNED3
                )
                (choices #MSG_ALREADY_ASSIGNED_BUTTON1
                         #MSG_ALREADY_ASSIGNED_BUTTON2
                )
                (help    #MSG_NOHELP)
            )
        )
    )
)

;**CHOOSE PATH**

(complete 20)

(if (= 1 #GETPATH)
    (
        (set #INSTALLPATH (askdir
                (prompt  #MSG_DEST)
                (help    #MSG_NOHELP)
                (default @default-dest)
            )
        )
    )
)

;**CHOOSE COMPONENTS TO INSTALL**

(complete 30)

(if (= 2 @user-level)
    (
        (set #WHAT (askoptions
                (prompt  #MSG_WHAT)
                (choices #MSG_WHAT_PROGGY
                         #MSG_WHAT_DOCU
                         #MSG_WHAT_CONFIG
                         #MSG_WHAT_CATALOG
                         #MSG_WHAT_PROJECT
                         #MSG_WHAT_SCRIPTS
                )
                (help    #MSG_NOHELP)
                (default #WHAT)
            )
        )
        (if (<> 0 (bitand #WHAT_DOCU #WHAT))
            (set #DOCLANGUAGE (askchoice
                    (prompt  #MSG_DOC)
                    (choices #MSG_DOC_ENGLISH
                             #MSG_DOC_GERMAN)
                    (help    #MSG_NOHELP)
                    (default #lang)
                )
            )
        )
    )
)

;**CREATE DIRECTORY**

(complete 40)

(if (= 1 #GETPATH)
    (
        (makedir
                 (tackon #INSTALLPATH "Emperor")
                 (prompt #MSG_MAKEDIR)
                 (help   #MSG_NOHELP)
        )
        (copyfiles
                 (prompt #MSG_COPY_ICON)
                 (source "Emperor.info")
                 (dest   #INSTALLPATH)
                 (help   #MSG_NOHELP)
        )
        (set #INSTALLPATH (tackon #INSTALLPATH "Emperor")
        )
    )
)

;**START COPY-PROCEDURE**

(complete 50)

(if (<> 0 (BITAND #WHAT_PROGGY #WHAT))
    (
        (copyfiles
                 (prompt #MSG_COPY_PROGGY)
                 (source "Emperor/Emperor")
                 (dest   #INSTALLPATH)
                 (infos)
                 (help   #MSG_NOHELP)
        )
    )
)

(complete 55)

(if (<> 0 (BITAND #WHAT_DOCU #WHAT))
    (
        (if (= 1 #DOCLANGUAGE)
            (
                (copyfiles
                     (prompt #MSG_COPY_DOCU)
                     (newname "Emperor.guide")
                     (source "Emperor/Emperor_deutsch.guide")
                     (dest   #INSTALLPATH)
                     (infos)
                     (help   #MSG_NOHELP)
                )
            )
            (
                (copyfiles
                     (prompt #MSG_COPY_DOCU)
                     (newname "Emperor.guide")
                     (source "Emperor/Emperor_english.guide")
                     (dest   #INSTALLPATH)
                     (infos)
                     (help   #MSG_NOHELP)
                )
            )
        )
    )
)

(complete 60)

(if (<> 0 (BITAND #WHAT_CONFIG #WHAT))
    (
        (copyfiles
                 (prompt #MSG_COPY_CONFIG)
                 (source "Emperor/Emperor.prefs")
                 (dest   #INSTALLPATH)
                 (infos)
                 (help   #MSG_NOHELP)
        )
    )
)

(complete 65)

(if (<> 0 (BITAND #WHAT_CATALOG #WHAT))
    (
        (copyfiles
                 (prompt #MSG_COPY_CATALOG)
                 (source "Emperor/Catalogs/deutsch/Emperor.catalog")
                 (dest   "SYS:Locale/Catalogs/deutsch")
                 (help   #MSG_NOHELP)
        )
    )
)

(complete 70)

(if (<> 0 (BITAND #WHAT_PROJECT #WHAT))
    (
        (copyfiles
                 (prompt #MSG_COPY_PROJECT)
                 (source "Emperor/Projects/")
                 (dest   (tackon #INSTALLPATH "Projects"))
                 (infos)
                 (all)
                 (help   #MSG_NOHELP)
        )
    )
)

(complete 75)

(if (<> 0 (BITAND #WHAT_SCRIPTS #WHAT))
    (
        (copyfiles
                 (prompt #MSG_COPY_SCRIPTS)
                 (source "Emperor/Scripts/")
                 (dest   (tackon #INSTALLPATH "Scripts"))
                 (infos)
                 (all)
                 (help   #MSG_NOHELP)
        )
    )
)

;**COPY NECESSARILY ADDITONAL INFORMATIONS**

(complete 80)

(copyfiles
    (prompt #MSG_COPY_README)
    (source "Emperor/ClicktabExample.README!")
    (dest   #INSTALLPATH)
    (help   #MSG_NOHELP)
)

(copyfiles
    (prompt #MSG_COPY_PICTURE)
    (source "Emperor/Emperor.pic")
    (dest   #INSTALLPATH)
    (help   #MSG_NOHELP)
)

;**ADD ASSIGN TO USER-STARTUP**

(complete 90)

(if (= 1 #GETPATH)
    (
        (set #MSG_STARTUPSTUFF (cat "Assign Emperor: " #INSTALLPATH "\n"))
        (startup "Emperor"
            (prompt #MSG_STARTUP
                    #MSG_STARTUPSTUFF
            )
            (command #MSG_STARTUPSTUFF)
            (confirm)
            (help #MSG_NOHELP)
        )
        (makeassign "Emperor" #INSTALLPATH)
    )
)

(complete 100)

(exit #MSG_DONE (quiet))
