; $VER: GoldED 0.97
; Copyright 1994 Dietmar Eilert - Alle Rechte vorbehalten

(delopts "oknodelete" "force" "askuser")
(complete 0)

(message (cat "\n"

    "Programmer's Editor, Alle Rechte vorbehalten.  \n"
    "                                               \n"
    "GoldED '94 Dietmar Eilert, Aachen/Germany     \n"
    "Reqtools  '91-94 Nico Franois/Belgium        \n"
    "GUIMake '93 Rico Krasowski, Kassel/Germany    \n"
    "                                               \n"
    "GoldED ist NICHT 'frei vertreibbar'. Bitte     \n"
    "lesen Sie die Lizenz-Datei, bevor Sie GoldED   \n"
    "installieren. Mit der Installation stimmen Sie \n"
    "den Lizenzbedingungen zu. Danke.               \n"
))

(welcome)

(set @default-dest "")

; set default language selection (catalogs) to 'none'

(set catalogs 0)

; sure we are running under a 2.04 ROM ?

(if (< (/ (getversion) 65536) 37)

    (
      (message "\n Sorry, dieses Paket benoetigt mind. OS2.04.\n")
      (exit (quiet))
    )
)

(if (not (exists "prefs:" (noreq))) (makeassign "prefs" "sys:prefs"))

(onerror (

    (if (> @ioerr 0)

        (message

            (cat "\n"

                " Fehler-Code: " @ioerr "\n\n"

                " Ein Fehler ist aufgetreten. Bitte informieren Sie\n"
                " eine GED-Support-Stelle oder DIETMAR@MAILWAY.ZER.\n"
                " Die folgende Information wird benoetigt: Fehler- \n"
                " Code (s.o.), Fehler-Text, abgearbeiteter Prozent-\n"
                " satz (s. Fenstertitel) und die Log-Datei. Vielen \n"
                " Dank !                                           \n"
            )
        )
    )
))

(welcome)

(if (exists "GoldED:" (noreq))

    (set update (askchoice

        (prompt (cat "\nGoldED-Installation entdeckt...\n"))

        (help (cat "\n"

            " Whlen Sie 'Update', um die neue GED-Fassung ber\n"
            " ihre bisherige Kopie zu installieren; in diesem  \n"
            " Fall wird das Skript auf einige Fragen verzichten\n"
            " und sich dafr an der bisherigen Installation    \n"
            " orientieren.                                     \n"
            "                                                  \n"
            " Mit 'Deinstallation' kann eine schon vorhandene  \n"
            " GoldED-Version entfernt werden. Einige Dateien   \n" 
            " werden dabei allerdings nicht gelscht werden    \n"
            " knnen (u.a. Libraries, da sie meist noch von    \n"
            " anderen Programmen bentigt werden).             \n"
            "                                                  \n"
            " Sollten im Laufe dieser sicher nicht perfekten   \n"
            " Installation Probleme auftreten, empfiehlt sich  \n"
            " eine Deinstallation, bevor dann komplett neu     \n"
            " installiert wird.                                \n"
        ))

        (default 1)

        (choices

            "Neu installieren"
            "Update (ber bisherige Version installieren)"
            "Deinstallation (GoldED entfernen)"
        )
    ))
)

; remove GoldED ?

(if (= update 2) (

    (if (exists "GoldED:" (noreq))

        (
          (run "assign >NIL: oldged: GoldED:/")

          (run "assign >NIL: HiSpeed:  remove")
          (run "assign >NIL: GoldED:   remove")
          (run "assign >NIL: GUIMake:  remove")

          (run "delete >NIL: oldged:GoldED all quiet force")
          (run "delete >NIL: oldged:GoldED.info")

          (if (exists "locale:catalogs/deutsch/GoldED.catalog" (noreq))
              (run "delete >NIL: locale:catalogs/deutsch/GoldED.catalog")
          )

          (if (exists "locale:catalogs/deutsch/HiSpeed.catalog" (noreq))
              (run "delete >NIL: locale:catalogs/deutsch/HiSpeed.catalog")
          )

          (run "delete >NIL: prefs:presets/GED_#? all quiet")
          (run "delete >NIL: prefs:presets/GoldED all quiet")

          (if (exists "envarc:GoldED")
              (run "delete >NIL: envarc:GoldED all quiet")
          )

          (run "delete >NIL: env:GoldED all quiet")
          (run "delete >NIL: fonts:GoldED all quiet")
          (run "delete >NIL: s:GUIMake.pref")

          ((startup

              "GoldED"
              (prompt "'GoldED:'-Assign entfernen ?\n")
              (help "Sie mssen diesen Assign entfernen lassen !")
              (command  "; (removed)")
          ))

          ((startup

              "HiSpeed"
              (prompt "'HiSpeed:'-Assign entfernen ?\n")
              (help "Sie mssen diesen Assign entfernen lassen !")
              (command  "; (removed)")
          ))

          ((startup

              "GED_quick"
              (prompt "QuickStarter-Referenz aus Startup entfernen ?\n")
              (help "Es mu ggf. ein Resident-Befehl entfernt werden.")
              (command  "; (removed)")
          ))

          ((startup

              "GUIMake"
              (prompt "'GUIMake:'-Assign entfernen ?")
              (help "Sie mssen diesen Assign entfernen lassen !")
              (command  "; (removed)")
          ))

        )
    )
    (exit (quiet))
))

; what parts should be installed ?

(if (= update 0) (

    (set parts (askoptions 

        (prompt "\n Welche Teile sollen installiert werden ?\n")

        (help (cat "\n"

            " Sie sollten sich fr eine komplette Installation  \n"
            " entscheiden. Anleitungen, Libraries, etc. sind    \n"
            " entscheidend fr die Lauffhigkeit des Systems    \n"
            " (die Anleitung wird beispielsweise von der Hilfe- \n"
            " Funktion bentigt).                               \n"
            "                                                   \n"
            " Der Schnellstarter ist ein kleiner Vorsatz (4 KB) \n"
            " fr GED, der benutzt werden kann, als ob er selbst\n"
            " ein Editor wre. Der groe Vorteil des Schnell-   \n"
            " starters ist, dass er Jobs an einen schon lau-    \n"
            " fenden Editor weitergeben kann. Dies geschieht    \n"
            " *extrem* schnell. Der Quickstarter kann resident  \n"
            " gemacht werden (GoldED selbst nicht).             \n"
            "                                                   \n"
            " Von Ihren bisherigen Presets - etwa Menus - werden\n"
            " Sicherheitskopien angelegt, von ihrer Gesamtkon-  \n"
            " figuration NICHT (sie wre mit der neuen Version  \n"
            " auch nicht benutzbar).                            \n"
            "                                                   \n"
            " Libraries werden nicht berschrieben (sofern sie  \n"
            " nicht berholt sind).                             \n"

          ))

        (choices

            " Editor & Anleitung"
            " Schnellstarter"
            " Libraries"
            " begleitende Tools"
         )

        (default 255))
    ))

    (set parts 255)
)

(complete 1)

(if (OR (IN parts 0) (IN parts 6)) (

    (if (= update 1) 

        ; 0 = medRes icons, 1 = hiRes icons

        (if (> (getsize "golded:golded.info") 800)

            (set icons 1)
            (set icons 0)
        )

        ((set icons (askchoice

            (prompt  "Bevorzugten Icon-Typ whlen")

            (choices

                " mittlere Auflsung (Seitenverhltnis 1:2)"
                " hohe Auflsung     (Seitenverhltnis 1:1)"
            )

            (help (cat "\n"

                " Whlen Sie die mittlere Auflsung, wenn fr Ihre   \n"
                " Workbench ein Modus wie 640*200 eingestellt ist.   \n"
                "                                                    \n"
                " Die hohe Auflsung sollte bei einem Hhen/Breiten- \n"
                " verhltnis von etwa 1:1 verwendet werden (640*512  \n"
                " oder 800*600).                                     \n"
            ))

            (default 1)
        ))
    ))
))

(complete 2)

; install the editor itself ?

(if (IN parts 0) (

    (set reboot 1)

    (if (= update 1)

        (set target "golded:/")

        ((set target (askdir

            (prompt  " Wo soll das Paket installiert werden ? \n")

            (help (cat "\n"

                " Whlen Sie ein beliebiges Verzeichnis. Hauptver-  \n"
                " zeichnisse wie DH0: knnen auch benutzt werden.   \n"
                " In dem angegebenen Pfad wird ein Ordner 'GoldED'  \n"
                " samt Icon erzeugt werden.                         \n"
                "                                                   \n"
                " Sie sollten ein Verzeichnis whlen, dem ein Icon  \n"
                " zugeordnet ist, um GoldED auch ber die Workbench \n"
                " wiederfinden zu knnen (etwa SYS:TOOLS).          \n"
                "                                                   \n"
                " Das GoldED-Verzeichnis wird neben dem Editor auch \n"
                " diverse begleitende Dateien aufnehmen: neben einer\n"
                " Makrosammlung einige Hilfsprogramme. Die Anleitung\n"
                " werden Sie dort ebenfalls wiederfinden.           \n"
            ))

            (default "SYS:TOOLS")
        ))
    ))

    (set @default-dest target)

    (complete 5)

    (set targetsize (getdiskspace target))

    (if (< targetsize 1250000) (

        (if (<> (getdevice target) "RAM") (

            (abort (cat "\n"

                " Diese Installation bentigt mindestens 1.2 MB\n"
                " freien Platz auf dem Zieldatentrger. Bitte  \n"
                " machen Sie diesen Platz verfgbar und starten\n"
                " die Installation dann neu.                   \n"
            ))
        ))
    ))

    (complete 10)

    (copyfiles

        (source "data/main")
        (dest target)
        (infos)
        (all)
    )

    (complete 15)

    (if (= icons 0)

        (copyfiles

          (source "data/Icons/GoldED")
          (dest (tackon target "GoldED"))
          (all)
          (infos)
        )
    )

    (makeassign "GoldED" (tackon target "GoldED"))

    ; decrunch manual (self-extracting)

    (run "data/doc/Manual.run GoldED:")

    ; remove obsolete files

    (delete "GoldED:GoldED.guide" (infos))
    (delete "GoldED:Hi!" (infos))

    (complete 20)

    (if (= update 1)

        (
            (set catalogs 3)

            (if (exists "locale:catalogs/deutsch/golded.catalog" (noreq))

                (
                    (set catalogs 2)
                    (delete "locale:catalogs/deutsch/golded.catalog")
                )
            )
        )

        ((set catalogs (askoptions

            (prompt "\n Welche Sprachen sollen installiert werden ?\n")

            (choices
                " Englische Catalog-Datei"
                " Deutsche Catalog-Datei"
            )

            (help (cat "\n"

                " Diese Daten werden vom Betriebssystem bentigt, um  \n"
                " GoldED in verschiedenen Sprachen ablaufen zu lassen \n"
                " (dazu ist allerdings mindestens OS2.1 erforderlich).\n"
                "                                                     \n"
                " Menus werden nicht automatisch lokalisiert, da sie  \n"
                " benutzerabhngig und nicht Teil des Editors sind;   \n"
                " dazu spter mehr.                                   \n"
            ))

            (default 3)
        ))
    ))

    (if (not (exists "locale:" (noreq))) (

        (makedir "sys:locale")
        (makeassign  "locale" "sys:locale")
    ))

    (if (not (exists "locale:catalogs"))) (makedir "locale:catalogs")

    (if (IN catalogs 1) (

        (if (not (exists "locale:catalogs/deutsch"))) (makedir "locale:catalogs/deutsch")

        (copyfiles

            (source "data/catalogs/deutsch")
            (dest   "locale:catalogs/deutsch")
            (all)
        )
    ))

    (if (= update 0)

        (   
            (makeassign  "GoldED" (tackon target "GoldED"))
            
            (startup

                "GoldED"

                (prompt "'GoldED:'-Assign einrichten ?\n")

                (help (cat "\n"
                
                    " GoldED unterersttzt benutzerdefinierbare Menus.  \n" 
                    " In der Regel mssen dabei einige Menueintrge auf \n"
                    " externe Daten wie ARexx-Makros zugreifen. Es ist  \n"
                    " blich, hierbei absolute symbolische Pfade zu ver-\n"
                    " wenden; Standard fr diesen Editor ist 'GOLDED:'. \n"
                    " Wenn Sie diesen Assign nicht anbringen lassen,    \n"
                    " werden insbesondere unerfahrene Anwender und An-  \n"
                    " wenderinnen PROBLEME bekommen.                    \n"
                    "                                                   \n"
                    " Prinzipiell kann aber auf diesen Assign verzichtet\n"
                    " werden, da von GED selbst nur eine einzige externe\n"
                    " Datei bentigt wird (envarc:GoldED/GoldED.prefs). \n"
                )
            )
            
            (command  ("ASSIGN >NIL: GOLDED: %s " (tackon target "GoldED")))
        ))
    )
))

(complete 25)

; install QuickStarter ?

(if (IN parts 1) (

    (set progname (askchoice

        (prompt " Namen fr Schnellstarter whlen")

        (help (cat "\n"

            " Der Schnellstarter ist ein kleiner (4 K) Vorsatz  \n"
            " fr GoldED, der benutzt werden kann, ALS OB er    \n"
            " selbst ein Editor wre. Sie knnten so ED LETTER  \n"
            " eingeben, um den Text LETTER zu bearbeiten, wenn  \n"
            " der Name des Quickstarters ED lautet. Der Vorteil \n"
            " des Quickstarters: Er kann einen schon laufenden  \n"
            " Editor ansprechen und diesem die Aufgabe ber-    \n"
            " geben. Dies geschieht SEHR schnell. In der Praxis \n"
            " werden Sie vermutlich bald nur noch den Schnell-  \n"
            " starter verwenden.                                \n"
            "                                                   \n"
            " Namensvorgabe ist ED; damit wrde der originale ED\n"
            " Ihrer Workbench ersetzt. Es kann aber natrlich   \n"
            " jeder beliebige Name benutzt werden.              \n"
        ))

        (choices 

            "GED"
            "ED"
            "(anderer)"
        )

        (default 1)
    ))

    (complete 30)

    (if (= progname 0) (set name "GED"))
    (if (= progname 1) (set name "ED" ))

    (if (= progname 2)

        (set name (askstring

            (prompt  " Enter a name:\n")

            (help (cat "\n"

                " Whlen Sie einen beliebigen Namen. Unter diesem    \n"
                " Namen vorhandene Dateien werden berschrieben. Mit \n"
                " ED wrden sie den alten ED der Workbench ersetzen. \n"
            ))

            (default "ED")
        ))
    )

    (complete 35)

    (set comdir (askdir

        (prompt (cat "\n"

            " Plazieren des Schnellstarters im Kommandopfad:\n"
        ))

        (help (cat "\n"

            " Sie sollten eines der folgenden Verzeichnisse be- \n"
            " nutzen, um den Starter durch einfache Namensangabe\n"
            " von jedem Verzeichnis aus aufrufen zu knnen:     \n"
            "                                                   \n"
            " SYS:C, SYS:TOOLS, SYS:UTILITIES oder SYS:SYSTEM   \n"
            "                                                   \n"
            " Haben Sie den Starter ED genannt, so sollte er    \n"
            " entweder in 'C:' plaziert werden oder der dort    \n"
            " vorhandene ED gelscht werden, um eindeutige Ver- \n"
            " hltnisse zu schaffen.                            \n"
        ))

        (default "C:")
    ))

    (copyfiles 

        (source  "data/main/GoldED/ED")
        (dest    comdir)
        (newname name)
    )

    (run "resident >NIL: ED remove")

    (startup

        "GED_quick"

        (prompt "\n Schnellstarter resident machen ?\n")

        (help (cat "\n"

            " Der Quickstarter sollte resident gemacht werden,\n"
            " da er dann noch schneller ansprechbar ist. Der  \n"
            " damit verbundene Speicherverbrauch ist vernach- \n"
            " lssigbar (4 KB).                               \n"
        ))

        (command  (cat "resident " (tackon comdir name) " pure"))
    )
))

(complete 40)

; install presets ...

(if (IN parts 0) (

    (set prefsdir "prefs:presets/GoldED")

    (if (exists prefsdir) (

        (set bakdir "prefs:presets/GED_BAK")

        (if (exists bakdir) (

            (while (exists bakdir) (
                (set bakdir (cat bakdir "X"))
            ))
        ))

        (complete 45)

        (working "Sicherheitskopien der Einstellungen anlegen...")

        (complete 50)

        (copyfiles

          (source prefsdir)
          (dest   bakdir)
          (nogauge)
          (all)
        )

        (message (cat "\n"

            "Kopien der alten Einstellungen wurden im folgenden\n"
            "Verzeichnis abgelegt:\n\n"

             bakdir
        ))

        (run (cat "delete " prefsdir " all quiet"))
    ))

    (complete 55)

    (copyfiles

      (source "data/presets")
      (dest   "prefs:presets")
      (all)
    )

    (complete 60)

    ; install config file ...

    (set language 255)

    ; already a language selected (while installing main editor) ?

    (if (= catalogs 1) (set language 0))
    (if (= catalogs 2) (set language 1))

    (if (= language 255) (

        (set language (askchoice

            (prompt "\n Sprache fr Menu auswhlen: \n")

            (choices

                "Englisch"
                "Deutsch"
            )

            (help (cat "\n"

                " GoldED ist 'lokalisiert', sprich: benutzt ab OS2.1  \n"
                " die Locale-Library um seine Requester an die system-\n"
                " weit eingestellte Sprache anzupassen. Da Menus aber \n"
                " nicht Bestandteil von GoldED selbst sind, knnen sie\n"
                " nicht automatisch lokalisiert werden. Statt dessen  \n"
                " ist dem Programm mitzuteilen, welche Menudefinition \n"
                " verwendet werden soll. Menudefinitionen stehen in   \n"
                " Form von Dateien z.Zt. in Deutsch und Englisch zur  \n"
                " Verfgung. Sie sind spter auch jederzeit aus dem   \n"
                " Editor heraus nachladbar.                           \n"
            ))

            (default 1)
        ))
    ))

    (set guimake (askbool

        (prompt "\n GUIMake einbinden ('93 Rico Krasowski) ?")

        (help (cat "\n"

            " GUIMake ist ein Make-Tool mit grafischer Oberflche \n"
            " und direkter Anbindung an GED (beim Programmieren   \n"
            " als Ersatz fr Makefiles zu verwenden). Untersttzt \n"
            " Projekt-Management und komfortables Fehler-Handling \n"
            " (Sprung zur fehlerhaften Zeile nach dem bersetzen).\n"
            " Mit freundlicher Genehmigung des Autors von GUIMake \n"
            " (Rico Kraswoski).                                   \n"
            "                                                     \n"
            " Untersttzte Compiler zur Zeit: unregistrierter und \n"
            " registrierter DICE.                                 \n"
        ))

        (default 1)
    ))

    (if (= guimake 1)

        (
            (if (= language 0)

                (set menufile "GUI_FactoryUS.men")
                (set menufile "GUI_FactoryD.men" )
            )

        )

        (
            (if (= language 0)

                (set menufile "FactoryUS.men")
                (set menufile "FactoryD.men" )
            )
        )
    )

    (if (= (database "vblank") 50) (

        (set vblank 1)
        (set vblank 3)
    ))

    (complete 61)

    (set screen (askchoice

        (prompt "\n Gewnschter Bildschirmmodus:\n")

        (choices

            "eigener Screen, NTSC"
            "eigener Screen, NTSC interlaced"
            "eigener Screen, PAL"
            "eigener Screen, PAL interlaced"
            "Workbench-Screen"
        )

        (default vblank)

        (help (cat "\n"

            " Zur Einstellung des Bildschirmmodus vor dem ersten  \n"
            " Programmstart. Ich wrde zu einem eigenen Screen    \n"
            " raten, da GED dann schneller arbeitet und schner   \n"
            " aussieht (bei Rechnern mit nur 512K Chip-RAM ist    \n"
            " dafr aber mglicherweise zu wenig Speicher vor-    \n"
            " handen).                                            \n"
        ))
    ))

    (complete 62)

    (if (= screen 4)

        (set display "workbench.dsp")

        (
            (if (< (/ (getversion) 65536) 39)

                (
                    (set mode (askchoice
                    
                        (prompt "Farbschema")

                        (choices

                            "Blue  (2 Farben, schnelllll)"
                            "TKEd  (4 Farben, helles Rot)"
                            "Sun   (4 Farben, orange-grau)"
                            "TPP   (4 Farben, dunkelblau)"
                            "Ocean (4 Farben, helles Grn)"
                            "Stone (2 Farben, grau, schnell)"
                            "Leaf  (4 Farben, mein Favorit :-)"
                        )

                        (help (cat "\n"

                            " Vorschlag: benutzen Sie einen 2-Farb-Modus,  \n"
                            " wenn Ihr Rechner eher langsam ist (68000er), \n"
                            " ansonsten einen 4-Farb-Modus. Seien Sie ge-  \n"
                            " warnt: innerhalb von GoldED stehen Ihnen noch\n"
                            " wesentlich mehr Modi zur Vefgung :-)        \n"
                        ))
                    ))
                )

                (
                    (set mode (askchoice
                    
                        (prompt "Farbschema")

                        (choices

                            "Blue     (2 Farben, schnelllll)"
                            "TKEd     (4 Farben, helles Rot)"
                            "Sun      (4 Farben, orange-grau)"
                            "TPP      (4 Farben, dunkelblau)"
                            "Ocean    (4 Farben, helles Grn)"
                            "Stone    (2 Farben, grau, schnell)"
                            "Leaf     (4 Farben, mein Favorit :-)"
                            "CED-Blue (4 Farben, helles Blau)"
                            "Tennis   (4 Farben, rostbraun-grn)"
                        )

                        (help (cat "\n"

                            " Vorschlag: benutzen Sie einen 2-Farb-Modus,  \n"
                            " wenn Ihr Rechner eher langsam ist (68000er), \n"
                            " ansonsten einen 4-Farb-Modus. Seien Sie ge-  \n"
                            " warnt: innerhalb von GoldED stehen Ihnen noch\n"
                            " wesentlich mehr Modi zur Vefgung :-)        \n"
                        ))
                    ))
                )
            )

            (if (= mode 0) (set display "Blue"  ))
            (if (= mode 1) (set display "TKEd"  ))
            (if (= mode 2) (set display "Sun"   ))
            (if (= mode 3) (set display "TPP"   ))
            (if (= mode 4) (set display "Ocean" ))
            (if (= mode 5) (set display "Stone" ))
            (if (= mode 6) (set display "Leaf"  ))
            (if (= mode 7) (set display "CED"   ))
            (if (= mode 8) (set display "Tennis"))

            (if (or (= screen 0) (= screen 1))

                (set display (cat display "_NTSC"))
                (set display (cat display "_PAL" ))
            )

            (if (or (= screen 1) (= screen 3)) (

                (set display (cat display "_LACE"))
            ))

            (set display (cat display ".dsp"))
        )
    )

    (complete 63)

    (set printer (askchoice

        (prompt "\n Welchen Drucker besitzen Sie ? \n")

        (choices

            "DeskJet oder Kompatibler (Olivetti, Fujitsu, ...)"
            "Laserdrucker (PCL-Drucker)"
            "keinen/Nadeldrucker/anderen"
        )

        (default 0)

        (help "\n Geben Sie den Druckertyp an, den Sie besitzen.")
    ))

    (if (= printer 2)

        (set prtfile "standard.prt"  )
        (set prtfile "DeskJetLQ.prt" )
    )

    (complete 64)

    (set proglang (askchoice

        (prompt "\n Bevorzugte Programmiersprache:\n")

        (choices

            "C"
            "Pascal"
            "Basic"
            "andere/keine"
        )

        (default 0)

        (help (cat "\n"

            " GED bietet 'intelligente' Einrckung nach Schlssel-\n"
            " worten wie IF. Das Einrckungsschema hngt von Ihrer\n"
            " Programmiersprache ab. Daneben wird bei Wahl von C  \n"
            " auch noch ein C-Wrterbuch installiert, das der     \n"
            " automatischen Korrektur von Gro-/Kleinschreibung   \n"
            " sowie der automatischen Wortvervollstndigung dient.\n"
        ))
    ))

    (if (= proglang 0) 

        ((set indention  "C.ind") 
         (set dictionary "C.dic"))

        ((set indention  "empty.ind")
         (set dictionary "empty.dic"))
    )

    (if (= proglang 1) (set indention "Pascal.ind"))
    (if (= proglang 2) (set indention "Basic.ind"))

    (copyfiles

        (source "data/envarc")
        (dest "envarc:")
        (infos)
        (all)
    )

    (set prefs " data/presets/GoldED/")

    ; create main preferences file by joining preset files (order is important)

    (run (cat
       
       "JOIN "

       (cat prefs "standard.msc")
       (cat prefs "standard.key")
       (cat prefs "empty.ref"   )
       (cat prefs  display      )
       (cat prefs "standard.def")
       (cat prefs  prtfile      )
       (cat prefs "standard.tab")

       " AS T:GED.prefs"
    ))

    (run (cat
       
       "JOIN T:GED.prefs "

       (cat prefs  menufile     )
       (cat prefs  dictionary   )
       (cat prefs  indention    )
       (cat prefs "standard.lay")
       (cat prefs "empty.prj"   )
       (cat prefs "standard.hnt")
       (cat prefs "standard.gui")
       (cat prefs "standard.api")

       " AS envarc:GoldED/GoldED.prefs"
    ))

    (copyfiles

        (source "envarc:GoldED")
        (dest   "env:GoldED")
        (all)
        (infos)
    )

    ; install 2nd set of icons (pixel ratio approx. 1:2) ?

    (if (= icons 0)

        (copyfiles 

          (source "data/Icons/Envarc")
          (dest   "envarc:")
          (infos)
          (all)
        )
    )
))

(complete 65)

(if (= update 0) (

    ; install libraries ?

    (if (IN parts 2) (

        (if (exists "support/amigaguide")

            (copylib

                (prompt "Installation der AmigaGuide-Library...")
                (help @copylib-help)
                (source "support/amigaguide/amigaguide.library")
                (dest "libs:")
                (confirm)
            )
        )

        (if (exists "support/reqtools") (

            (copylib

                (prompt "Installation der Reqtools-Library...")
                (help @copylib-help)
                (source "support/reqtools/reqtools.library")
                (dest "libs:")
                (confirm)
            )

            (if (not (exists "envarc:ReqTools.prefs")) (
                (copyfiles (source "support/reqtools/ReqTools.prefs") (dest "envarc:"))
            ))
        ))

        (if (exists "support/xpk") (

            (copylib

                (prompt "Installation der XpkMaster-Library...")
                (help @copylib-help)
                (dest "libs:")
                (source "support/xpk/xpkmaster.library")
                (confirm)
            )

            (if (not (exists "libs:compressors"))

                (copyfiles

                    (source "support/xpk/compressors")
                    (dest "libs:compressors")
                    (all)
                )
            )
        ))
    ))

    (complete 70)

))

; install font (has been revised, i.e. has to be installed in update mode, too)

(copyfiles

    (source "data/fonts" )
    (dest   "fonts:")
    (all)
    (nogauge)
)

(complete 75)

; process second disk ...

(if (exists "/GoldED2")

    (set from "/GoldED2/")

    (
         ; is this a Fish disk (i.e. name of 2nd disk unknown) ?

         (if (= @app-name "GoldED/FF") (

             (while (not (exists "df0:GoldED2.info"))

                 (
                   (message (cat "\n"

                       " Bitte legen Sie Teil II des GoldED-Paketes in\n"
                       " das Laufwerk df0: ein ...                    \n"
                   ))
                 )
             )

             (makeassign "GOLDED2" "df0:")
         ))

         (set from "GoldED2:GoldEd2/" )
    )
)

; install main editor (2nd part) ?

(if (IN parts 0) (

    ; install HiRes icons ?

    (if (= icons 1)

        (copyfiles

            (source (tackon from "data/main"))
            (dest target)
            (all)
        )
    )

    ; decrunch manual (self-extracting)

    (run (cat from "data/doc/Anleitung.run GoldED:"))
))

; install tools ?

(if (IN parts 3) (

    (set drive "GoldED:Tools")

    (if (not (exists drive)) (makedir drive))

    (complete 80)

    ; get rid of blank within destination path name ("Ram disk:") ...

    (if (= "RAM" (getdevice drive)) (set drive "RAM:"))

    ; install catalogs

    (if (not (exists "locale:" (noreq))) (

        (makedir "sys:locale")
        (makeassign  "locale" "sys:locale")
    ))

    (copyfiles 

        (source (tackon from "tools/locale"))
        (dest "locale:")
        (all)
    )

    (if (exists "GUIMake:" (noreq)) (set guimake 1))

    (if (= guimake 1) (

        (set target (tackon drive "GUIMake"))

        ((startup

            "GUIMake"

            (prompt "\n 'GUIMake:'-Assign einrichten ?\n")

            (help (cat "\n"

                " Dieser Assign wird bentigt, wenn Sie GUIMake be-\n"
                " nutzen mchten (ein Make-Programm mit grafischer \n"
                " Benutzeroberflche).                             \n"
            ))

            (command  ("ASSIGN >NIL: GUIMake: %s " target))
        ))
    ))

    (set target (tackon drive "HiSpeed"))

    (if (not (exists target)) (makedir target))

    (makeassign "HISPEED" target)

    (run "delete HISPEED:#? ALL QUIET")

    (copyfiles

        (source (cat from "tools/HiSpeed"))
        (dest "HISPEED:")
        (all)
        (infos)
    )


    (copyfiles (source (cat from "tools/HiSpeed.info")) (infos) (dest drive))

    (complete 85)

    (if (= update 0) (

        ((startup

            "HISPEED"

            (prompt "\n 'HISPEED:'-Assign einrichten ?\n")

            (help (cat "\n"

                " Dieser Assign wird bentigt, wenn Sie HiSpeed aus\n"
                " jedem beliebigen Verzeichnis heraus aufrufen     \n"
                " mchten. Er kann entfallen, wenn Sie die im Paket\n"
                " enthaltenen DJ-Sftfonts nicht benutzen werden.   \n"
            ))

            (command  ("ASSIGN >NIL: HISPEED: %s " target))
        ))

        ; remove preferences of former versions

        (if (exists "envarc:HiSpeed.config")
            (delete "envarc:hispeed.config")
        )

        (if (exists "s:HiSpeed.config")
            (delete "s:HiSpeed.config")
        )
        
    ))

    (if (exists "envarc:HiSpeed")

        (
            (copyfiles

                (source  "envarc:HiSpeed/HiSpeed.prefs")
                (newname "HiSpeed.prefs.bak")
                (dest    "envarc:HiSpeed")
            )

            (delete "envarc:HiSpeed/HiSpeed.prefs")
        )

        (makedir "envarc:HiSpeed")
    )

    (copyfiles

        (source  (cat from "tools/envarc"))
        (dest    "envarc:")
        (infos)
        (all)
    )

    (complete 90)

    (copyfiles

        (source (cat from "tools"))
        (dest "GoldED:Tools")
        (pattern "(U|ED|PRJ|REC|GUI|GED)#?")
        (infos)
    )

    (makeassign "GUIMake" "GoldED:tools/guimake")

    (copyfiles

        (source (cat from "tools/GUIMake/s/GUIMake.pref"))
        (dest "s:")
    )

    (complete 95)
))

(if (not (= update 2))

    (message (cat "\n"

        "Installation abgeschlossen. Sie sollen Ihren Amiga  \n"
        "neu booten, bevor Sie diese GoldED-Fassung erstmalig\n"
        "benutzen. Have fun :-)                              \n"
    ))
)

(complete 100)
