; Dies ist das Installer-Skript für AmigaBase

(set OS_version (/ (getversion) 65536))
(set IsKick20 (>= OS_Version 36))

(transcript "Installation von AmigaBase V2.2.")
(complete 0)

(set HD_Installation
   (=
      (askchoice
         (prompt "Bitte wählen Sie das Installations-Medium:")
         (help "Die Festplatten-Installation kopiert alle Dateien "
               "in ein eigenes Verzeichnis, während die Disketten-Installation "
               "eine Arbeits-Diskette erstellt.")
         (choices "Festplatten-Installation" "Disketten-Installation")
         (default 0)
      )
      0
   )
)

(if HD_Installation
   (set AB_dest_parent
      (askdir
         (prompt "Wählen Sie das Verzeichnis, in das AmigaBase installiert werden soll. "
                 "Das Installations-Programm legt hier automatisch das Verzeichnis "
                 "\"AmigaBase\" an.")
         (help @askdir-help)
         (default @default-dest)
      )
   )
   (
      (set AB_dest_parent "RAM:")
      (message
         "Das Installations-Programm nimmt an, daß Sie bereits "
         "eine Kopie Ihrer Workbench-Diskette mit mindestens "
         "100 kByte freiem Platz angelegt, von dieser Diskette "
         "neu gestartet und eine leere Diskette mit dem Namen "
         "\"AmigaBase\" formatiert haben.\n\n"
         "Falls dem nicht so ist, so brechen Sie bitte die Installation "
         "nun ab, führen die oben aufgeführten Anweisungen durch "
         "und starten die Installation neu.\n\n"
         "Die Disketten-Installation kopiert zuerst alle benötigten Dateien "
         "nach RAM:AmigaBase und kopiert diese dann auf die Diskette."
      )
   )
)

(set AB_dest (tackon AB_dest_parent "AmigaBase"))

(if HD_Installation
   (
      (set @default-dest AB_dest)

         (if (exists AB_dest)
            (message
               "Sie haben AmigaBase bereits in diesem Verzeichnis installiert. "
               "Falls Sie fortfahren, so wird die alte Installation überschrieben!"
            )
         )
    )
)

(complete 5)

; Make dest directory and create icon
(makedir AB_dest)
(copyfiles
   (source "/AB_dir.icon")
   (dest AB_dest_parent)
   (newname "AmigaBase.info")
)

(complete 10)

;copy AmigaBase
(set packed (exists "/AmigaBase.lha"))
(if packed
   (set lha (expandpath "lha"))
)

(copyfiles
   (prompt "Kopiere AmigaBase.")
   (help @copyfiles-help)
   (source (if packed "/AmigaBase.lha" "/AmigaBase"))
   (dest AB_dest)
   (infos)
   (confirm)
)

(if packed
   (
      (working "Packe AmigaBase aus...")
      (run ("cd \"%s\"\n\"%s\" x AmigaBase.lha\n delete AmigaBase.lha" AB_dest lha))
   )
)

(complete 15)

;copy some text files
(copyfiles
   (prompt "Kopiere die Text-Dateien.")
      (help @copyfiles-help)
      (source "/")
      (dest AB_dest)
      (pattern "(ReadMe#?|LiesMich|BUGS|HISTORY|TODO|Update#?|Reg_Form#?)")
      (infos)
      (confirm)
)

(complete 20)

;copy reqtools.library
(copylib
   (prompt "Installiere die 'reqtools.library'.")
   (help @copylib-help)
   (source
      (if IsKick20
         "/libs20/reqtools.library"
         "/libs13/reqtools.library"
      )
   )
   (dest "libs:")
   (confirm)
)

(complete 30)

;copy gadget.library
(copylib
   (prompt "Installiere die 'gadget.library'.")
   (help @copylib-help)
   (source "/libs13/gadget.library")
   (dest "libs:")
   (confirm)
)

(complete 40)

(if HD_Installation
   (
      ;make AmigaBase assign in startup-sequence

      (startup "AmigaBase"
         (prompt
            "Ein \"Assign\"-Befehl sollte in die Datei \"S:User-Startup\" "
            "eingetragen werden, damit AmigaBase automatisch gestartet "
            "wird, wenn Sie ein AmigaBase-Projekt doppelt anklicken."
         )
         (help @startup-help)
         (command (cat "assign AmigaBase: " AB_dest "\n"))
      )
      (if (exists AB_dest)
         (makeassign "AmigaBase" AB_dest)
      )
   )
)

(complete 50)

;copy catalog files
(if IsKick20
   (copyfiles
      (prompt "Welche zusätzlichen Sprachen soll AmigaBase unterstützen?")
      (help "Die eingebaute Sprache von AmigaBase ist englisch. ")
      (source "/Catalogs")
      (dest "LOCALE:Catalogs")
      (pattern "#?")
      (confirm)
   )
)

(complete 60)

;create "Data" directory
(makedir (tackon AB_dest "Data"))
(copyfiles
   (source "/Data.info")
   (dest AB_dest)
   (newname "Data.info")
)

(complete 70)

;copy optional examples
(set choice
   (askoptions
      (prompt "Kopiere optionale Beispiel-Projekte.")
      (help @askoptions-help)
      (choices "Deutsch" "English")
   )
)

(if choice
   (
      (set Data_dest (tackon AB_dest "Data"))

      (copyfiles
         (prompt "Kopiere Mandel-Bild.")
         (help @copyfiles-help)
         (source "/Data")
         (dest Data_dest)
         (choices "Graphics")
         (infos)
      )

      (set packed (exists "/Data/Deutsch.lha"))
      (if packed
         (set lha (expandpath "lha"))
      )

      (if (BITAND choice 1)
         (
            (copyfiles
               (prompt "Kopiere deutsche Beispiel-Projekte.")
               (help @copyfiles-help)
               (source "/Data")
               (dest Data_dest)
               (choices (if packed "Deutsch.lha" "Deutsch"))
               (infos)
            )
            (if packed
               (
                  (working "Packe Archiv aus...")
                  (run ("cd \"%s\"\n\"%s\" x Deutsch.lha\n delete Deutsch.lha" Data_dest lha))
               )
            )
         )
      )
      (if (BITAND choice 2)
         (
            (copyfiles
               (prompt "Kopiere englische Beispiel-Projekte.")
               (help @copyfiles-help)
               (source "/Data")
               (dest Data_dest)
               (choices (if packed "English.lha" "English"))
               (infos)
            )
            (if packed
               (
                  (working "Packe Archiv aus...")
                  (run ("cd \"%s\"\n\"%s\" x English.lha\n delete English.lha" Data_dest lha))
               )
            )
         )
      )
   )
)

(complete 80)

(if (NOT HD_Installation)
   (
      (askdisk
         (prompt
            "Alle benötigten Dateien wurden nach RAM:AmigaBase kopiert. "
            "Bitte legen Sie nun die Diskette \"AmigaBase\" in ein Laufwerk."
         )
         (help @askdisk-help)
         (dest "AmigaBase")
      )
      (copyfiles
         (source AB_dest)
         (dest "AmigaBase:")
         (all)
      )
      (run "delete ram:AmigaBase ram:AmigaBase.info ALL QUIET FORCE")

      (set @default-dest "AmigaBase:")
   )
)

(complete 100)

(exit "Beachten Sie bitte, daß Sie Ihren Rechner eventuell "
      "neu starten müssen, falls sich noch ältere Versionen "
      "der reqtools.library oder der gadget.library im Speicher befinden.")

