; Script zum installieren von BootDock V2.06
; © 1998, 1998 by Jörg Hälker

(complete 0)

(set #Information
(cat "\nDieses Script installiert die BootDock-Package auf Ihrer "
     "Festplatte.\n\nBootDock ist Copyright © bei Jörg Hälker. "
      "\nBei BootDock handelt es sich um SHAREWARE!! "
      "\nBei regelmäßiger Benutzung sollten Sie DM 20 an den Autor "
      "senden. Lesen Sie dazu in der Dokumentation das Kapitel \"Copyright\" "
      "\n\nWenn Ihnen BootDock nicht gefällt, können Sie es mit Hilfe "
      "dieses Scriptes auch wieder entfernen. "
))

(set #Install-Optionen
(cat "\nBitte eine Operation auswählen. Drücken Sie \"Help\" falls Sie "
     "Hilfe benötigen."
))

(set #Install-Optionen-Hilfe
(cat "\nSie müssen auswählen, ob BootDock installiert, oder von Ihrer "
     "Festplatte entfernt werden soll.\n\n"
     "Mit \"BootDock installieren\" wird eine komplette Installation "
     "der BootDock-Software durchgeführt. Dies sollten "
     "Sie wählen, um BootDock frisch auf einer neuen Festplatte "
     "zu installieren.\n\n"
     "Wenn Ihnen BootDock nicht mehr gefallen sollte oder ähnliches, "
     "dann können Sie es mit \"BootDock entfernen\" wieder entfernen.\n\n"
     "Mit \"BootDock updaten\" können Sie eine bereits vorhandene Version "
     "von BootDock updaten d.h. durch die Vorliegende ersetzen. "
     "Ihre bisherigen Einstellungen werden dabei, soweit es möglich ist, "
     "beibehalten."
))

(set #Install-Moeglichkeit-1
(cat "BootDock installieren"
))

(set #Install-Moeglichkeit-2
(cat "BootDock updaten"
))

(set #Install-Moeglichkeit-3
(cat "BootDock entfernen"
))

(set #Ziel-aussuchen
(cat "Bitte das Verzeichnis auswählen, in dem BootDock installiert werden soll. "
     "Es wird automatisch ein Verzeichnis \"BootDock\" erzeugt. "
))

(set #Ziel-aussuchen-Hilfe
(cat "Sie müssen festlegen, wohin Sie BootDock installiert haben wollen "
))

(set #Updateziel-aussuchen
(cat "Bitte das Verzeichnis auswählen, in dem sich das "
     "BootDock-Verzeichnis befindet."
))

(set #Updateziel-aussuchen-Hilfe
(cat "Sie müssen dem Installationsprogramm zeigen, wo Sie Ihre veraltete "
     "BootDock-Version installiert haben. "
))

(set #Kein-Updateverzeichnis
(cat "\n\nDas von Ihnen angegebene Verzeichnis enthält mit einer Wahrscheinlichkeit "
     "von 99.95% kein gültiges BootDock-Verzeichnis.\n\n"
     "Bitte ein neues Verzeichnis wählen."
))

(set #Ziel-bestaetigen
(cat "\n\n\nDieses Script installiert BootDock auf Ihrer Festplatte.\n\n"
     "Wollen Sie BootDock im Verzeichnis \"%s\" installiert "
     "bekommen?"
))

(set #Ziel-bestaetigen-Hilfe
(cat "\nSie haben festgelegt, daß BootDock "
     "in einem Verzeichnis namens \"%s\" installiert "
     "werden soll. "
))

(set #Ziel-bestaetigen-1
(cat "Ja, weitermachen"
))

(set #Ziel-bestaetigen-2
(cat "Nein, neu wählen"
))

(set #Kopiere-BD-Main
(cat "Das BootDock-Hauptprogramm. "
     "\n(Unbedingt im BootDock Verzeichnis ablegen!) "
))

(set #Kopiere-BD-Main-Hilfe
(cat "\n\nDas Hauptprogramm  wird nach jedem Neustart automatisch "
     "gestartet und gestattet es ihnen zwischen mehreren Bootdateien "
     "auszuwählen. "
))

(set #Kopiere-BD-Prefs
(cat "Das BootDock-Voreinsteller Programm. "
     "\n(Unbedingt im BootDock Verzeichnis ablegen!) "
))

(set #Kopiere-BD-Prefs-Hilfe
(cat "\n\nDieses Programm benötigen Sie wenn Sie die Einstellungen für "
     "BoootDock treffen wollen. "
     "\nSie sollten es unbedingt im BootDock-Verzeichnis ablegen, "
     "weil es sonst seine Konfigurationsdatei \"BootDock.prefs\". "
     "nicht (wieder)findet. "
))

(set #Kopiere-Prefs
(cat "Die Standart BootDock-Einstellungen. "
     "\n(Unbedingt im BootDock Verzeichnis ablegen!) "
))

(set #Kopiere-Prefs-Hilfe
(cat "\n\nDiese Datei enthält lediglich die Information darüber, "
     "daß Ihre Workbench-Bootdatei \"Workbench-Startup\" heißt. "
))

(set #Kopiere-BD-Dokumentation
(cat "Die BootDock-Dokumentation. "
))

(set #Kopiere-BD-Dokumentation-Hilfe
(cat "\n\nBei dieser Datei handelt es sich um die \"Gebrauchsanweisung\" "
     "für BootDock. Sie sollten Sie unbedingt lesen. (Mit MultiView "
     "oder AmigaGuide) "
))

(set #Kopiere-Bonbons
(cat "Die BootDock-Begrüssungstexte. "
))

(set #Startup-Sequence-umbennenen
(cat "\nBootDock geht davon aus, daß Ihre \"Orginal-Startup-Sequence\" "
     "automatisch die Workbench startet und nennt die entsprechende "
     "Bootdatei \"Workbench\". Ihre \"Startup-Sequence\" wird umbenannt "
     "in \"Workbench-Startup\" und in das BootDock-Verzeichnis "
     "\"Bootdateien\" verschoben. "
     "\n\nBedenken Sie: BootDock ist nicht lauffähig wenn Sie diesen Teil "
     "überspringen. "
     "\n\nBetätigen Sie die \"HELP-Taste\" für genauere Informationen. "
))

(set #Startup-Sequence-umbennenen-H
(cat "\n\nBootDock muß wissen, wo es Ihre \"alte\" Startup-Sequence findet, "
     "um u.a. die Workbench starten zu können. (Die Datei \"Startup-Sequence\" "
     "entscheidet, was nach dem Anschalten Ihres Amigas passieren soll). "
     "Sie müssen hier lediglich bestätigen, daß sie damit einverstanden sind, "
     "daß diese wichtige Datei umbenannt und durch eine neue ersetzt wird. "
      "\n\nLesen Sie unbedingt die Dokumentation! "
))

(set #Neue-Sequence-erzeugen-1
(cat "Das Installationsprogramm wird jetzt eine neue \"Startup-Sequence\" "
     "erzeugen. Diese startet nach jedem Neustart automatisch BootDock. "
     "Achtung: Wenn Sie bestimmte Gerätetreiber benutzen z.B. für "
     "Shadow-ROMs oder Software, die unbedingt vor BootDock gestartet "
     "werden muß, dann denken Sie bitte daran die neue \"Startup-Sequence\" "
     "am Ende der Installation entsprechend zu verändern! "
     "Denken Sie auch daran, daß \"Bootdateien/Workbench-Startup\" "
     "Ihre alte \"Startup-Sequence\" ist und ggf. vorhandene Einträge in "
     "dieser Datei gelöscht werden müssen. "
))

(set #Waehle_Piktogrammart
(cat "\nSie haben nun die Möglichkeit zu entscheiden welche Piktogramme "
     "BootDock verwenden soll. Wenn sie MagicWB (© Martin Huttenloher) "
     "benutzen (siehe \"Hilfe\") wählen sie bitte \"MagicWB\" aus. "
     "Wenn Sie MagicWB nicht installiert haben, sollten Sie \"Standart\" "
     "auswählen.\nWelche Piktogrammart wollen Sie verwenden? "
))

(set #Waehle_Piktogrammart-Hilfe
(cat "\n\nDie farbigen Symbole, die Sie auf der Workbench verwenden, "
     "bezeichnet man als Piktogramme. Das Disketten-Bildchen, daß "
     "erscheint, wenn Sie eine Diskette einlegen ist demzufolge also "
     "ein Disketten-Piktogramm (Englisch: Icon)\n"
     "Sie können hier entscheiden ob Sie die Standart-Piktogramme "
     "mit vier Farben verwenden möchten. Alternativ dazu können "
     "Sie auch 8-Farbige wunderschöne Pastell-Farbene Piktogramme "
     "verwenden. Dazu müssten Sie allerdings das MagicWB-Paket von "
     "Martin Huttenloher installiert haben. Sollten Sie dieses Paket "
     "nicht installiert haben, können Sie die MagicWB-Piktogramme "
     "nicht verwenden (Sie währen furchtbar häßlich!). "
     "Wenn Sie nicht Besitzer von MagicWB sind, kann ich Ihnen nur "
     "raten dieses zu bestellen. "
))

(set #Piktogrammart-1 "MagicWB")
(set #Piktogrammart-2 "Standart")

(set #Installation-fertig
(cat "\n\nBevor Sie einen Neustart durchführen, sollten Sie den BootDock "
     "Voreinsteller-Editor \"BootDock\" im BootDock-Verzeichnis aufrufen "
     "und dort die Einstellungen Ihren Wünschen nach anpassen. "
))

(set #Wo-ist-BootDock
(cat "Dieses Script ist (noch) nicht in der Lage selbst herauszufinden, "
     "wo Sie BootDock installiert haben. Wählen Sie deshalb bitte das "
     "Verzeichnis aus, in dem sich das BootDock-Verzeichnis befindet. "
))

(set #Wo-ist-BootDock-Hilfe
(cat "Sie müssen das Verzeichnis auswählen, worin sich das Verzeichnis "
     "\"BootDock\" befindet. "
))

(set #Kein-BootDock-Verzeichnis
(cat "\nKonnte BootDock im Verzeichnis \"%s\" nicht finden. "
     "Deinstallation wird Abgebrochen."
))

(set #Kein-BootDock-Anfaenger
(cat "Wenn sich Ihr BootDock nicht im Verzeichnis \"%s\" befindet, sollten "
     "Sie dieses Programm nocheinmal im Modus \"Geübter Benutzer\" starten."
))

(set #Startup-Sequence-rekonstruieren
(cat "Das Installationsprogramm wird jetzt die \"Startup-Sequence\" "
     "rekonstruieren, die Sie vor der BootDock-Installation benutzten. "
     "Diese startet nach jedem Neustart automatisch Ihr System. "
     "Das Installationsprogramm geht davon aus, daß Ihre Workbench-Bootdatei "
     "\"Workbench-Startup\" heißt. "
     "\n\nAchtung:\nWenn Sie bestimmte Gerätetreiber benutzen z.B. für "
     "Shadow-ROMs oder Software die unbedingt zu einem bestimmten Zeitpunkt "
     "gestartet werden muß, dann denken Sie bitte daran Ihre \"Startup-Sequence\" "
     "am Ende der Deinstallation entsprechend zu verändern! "
))

(set #Bootdateien-nach-SYS
(cat "\nDas Installationsprogramm wird jetzt sämtliche Bootdateien in "
     "Ihre \"SYS:\"-Partition kopieren, wo Sie sie herausnehmen können, um diese "
     "für andere Zwecke zu benutzen oder einfach nur aufzubewahren. "
     "\n\nWenn Sie diese Dateien dort belassen und irgendwann einmal BootDock "
     "neu installieren, werden die Dateien automatisch als Bootdateien "
     "erkannt und verwendet. (Nur, wenn Sie auf \"-Startup\" enden)"
))

(set #Deinstallation-fertig
(cat "BootDock wurde erfolgreich entfernt.\n\nSie können es nun neuinstallieren :) "
     "\n\nDas Deinstallationsprotokoll finden Sie in der RAM-Disk "
))

(set #Falsche-ROM-Version
(cat "Sorry, aber um BootDock benutzen zu können, benötigen Sie mindestens Kickstart "
     "2.1. (Version 38)"
))

(set #Neue-Startup-Sequence
(cat "FailAt 21\n\n"
     "C:SetPatch QUIET\n\n"
     "C:Assign ENV: ENVARC:\n\n"
     "; Die folgende Zeile wird *niemals* ausgefuehrt.\n"
     "; LOESCHEN SIE DIESE ZEILE AUF GAR KEINEN FALL\n"
     "; Sie beugt einem Installations-Problem vor.\n\n"
     "C:Execute >NIL: S:User-Startup_DUMMY\n\n"
     "CD \"%s\"\n"
     "BootDockMain\n\n"
     "EndCLI >NIL:\n"
))

(PROCEDURE Iconkopieren Testpfad Iconpfad Zielpfad Zielname
(
   (if (exists (tackon @default-dest Zielpfad))
      (copyfiles
         (prompt "")
         (help "")
         (source (cat Iconpfad Piktogrammart))
         (dest (tackon @default-dest Zielpfad))
         (newname Zielname)
         (nogauge)
      )
   )
))

(PROCEDURE Dateienkopieren
(
   (if ( = @user-level 1) (user 0))
   (copyfiles
      (prompt #Kopiere-BD-Main)
      (help #Kopiere-BD-Main-Hilfe)
      (source "Programme/BootDockMain")
      (dest @default-dest)
      (optional force)
      (confirm)
   )
   (copyfiles
      (prompt #Kopiere-BD-Prefs)
      (help #Kopiere-BD-Prefs-Hilfe)
      (source "Programme/BootDock")
      (dest @default-dest)
      (confirm)
   )
   (copyfiles
      (prompt #Kopiere-BD-Dokumentation)
      (help #Kopiere-BD-Dokumentation-Hilfe)
      (source "BootDock.guide")
      (dest @default-dest)
      (confirm)
   )
   (copyfiles
      (prompt #Kopiere-Bonbons)
      (help "")
      (source "Stuff/Bonbons")
      (dest (tackon @default-dest "Bonbons"))
      (confirm)
   )

   (user 2)
   (if
      (askbool
         (prompt #Waehle_Piktogrammart)
         (help #Waehle_Piktogrammart-Hilfe)
         (choices #Piktogrammart-1 #Piktogrammart-2)
         (default 0)
      )
      (
         (set Piktogrammart ".mwb")
      )
      (
         (set Piktogrammart ".icon")
      )
   )
   (user Userqualifikation)

   ; BootDock-Verzeichnis-Icon
   (copyfiles
      (prompt "")
      (help "")
      (source (cat "Piktogramme/BootDockDir" Piktogrammart))
      (dest Prev-Verzeichnis)
      (newname "BootDock.info")
      (nogauge)
      (noposition)
   )

   ; Bootdatei-Verzeichnis-Icon
   (Iconkopieren "Bootdateien" "Piktogramme/Bootdateien" "" "Bootdateien.info")

   ; Bonbon-Verzeichnis-Icon
   (Iconkopieren "Bonbons" "Piktogramme/Bonbons" "" "Bonbons.info")

    ; Voreinsteller-Icon
   (Iconkopieren "BootDock" "Piktogramme/BootDockPrefs" "" "BootDock.info")

   ; Workbench Bootdatei-Icon
   (Iconkopieren "Bootdateien/Workbench-Startup" "Piktogramme/Bootdatei" "Bootdateien" "Workbench-Startup.info")

   ; Bonbondatei-Icon
   (Iconkopieren "Bonbons/Bonbons" "Piktogramme/Bonbon" "Bonbons" "Bonbons.info")

   ; Dokumentation-Icon
   (Iconkopieren "BootDock.guide" "Piktogramme/Dokumentation" "" "BootDock.guide.info")
))   

(PROCEDURE Startuperzeugen
(
   (rename
      "S:Startup-Sequence"
      (tackon @default-dest "Bootdateien/Workbench-Startup")
      (prompt #Startup-Sequence-umbennenen)
      (help #Startup-Sequence-umbennenen-H)
      (confirm)
   )
   (textfile
      (prompt #Neue-Sequence-erzeugen-1)
      (help "")
      (dest "S:Startup-Sequence")
      (append (#Neue-Startup-Sequence @default-dest))
      (confirm)
   )
))

(PROCEDURE Installieren
(
   (set Ergebnis FALSE)
   (until ( = Ergebnis TRUE)
   (
      (set @default-dest
         (askdir
            (prompt #Ziel-aussuchen)
            (help #Ziel-aussuchen-Hilfe)
            (default "SYS:Tools/")
         )
      )
      (set @default-dest (expandpath @default-dest))
      (set Prev-Verzeichnis @default-dest)
      (set @default-dest (tackon @default-dest "BootDock"))
      (set Ergebnis 
         (askbool
            (prompt (#Ziel-bestaetigen @default-dest))
            (help (#Ziel-bestaetigen-Hilfe @default-dest))
            (choices #Ziel-bestaetigen-1 #Ziel-bestaetigen-2)
            (default 1)
         )
      )
   ))
   
   (makedir @default-dest)
   (makedir (tackon @default-dest "Bootdateien"))
   (makedir (tackon @default-dest "Bonbons"))

   (Dateienkopieren)
   
   (copyfiles
      (prompt #Kopiere-Prefs)
      (help #Kopiere-Prefs-Hilfe)
      (source "Stuff/BootDock.prefs")
      (dest @default-dest)
      (nogauge)
      (confirm)
   )
   
   (Startuperzeugen)

   (exit #Installation-fertig)
))

(PROCEDURE Updaten
(
   (user 2)
   (set Ergebnis FALSE)
   (until ( = Ergebnis TRUE)
   (
      (set @default-dest
         (askdir
            (prompt #Updateziel-aussuchen)
            (help #Updateziel-aussuchen-Hilfe)
            (default "SYS:Tools/")
         )
      )
      (set @default-dest (expandpath @default-dest))
      (set Prev-Verzeichnis @default-dest)
      (set @default-dest (tackon @default-dest "BootDock"))
      (set Ergebnis (exists (tackon @default-dest "BootDockMain")))
      (if ( = Ergebnis FALSE)
      (
         (message #Kein-Updateverzeichnis (all))
      ))
   ))
   (user Userqualifikation)
   
   (makedir @default-dest)
   (makedir (tackon @default-dest "Bootdateien"))
   (makedir (tackon @default-dest "Bonbons"))
   
   (Dateienkopieren)
   
   (textfile
      (prompt #Neue-Sequence-erzeugen-1)
      (help "")
      (dest "S:Startup-Sequence")
      (append (#Neue-Startup-Sequence @default-dest))
      (confirm)
   )

;  (run "Programme/Konvertieren" (tackon @default-dest "BootDock.prefs"))

   (exit #Installation-fertig)
)) 

(PROCEDURE Entfernen
(
   (user Userqualifikation)
   (set @default-dest
      (askdir
         (prompt #Wo-ist-BootDock)
         (help #Wo-ist-BootDock-Hilfe)
         (default "SYS:Tools/")
      )
   )

   (set Uebergeordnetes-Verzeichnis @default-dest)
   (set @default-dest (tackon @default-dest "BootDock"))

   (if (NOT (exists @default-dest))
   (
      (user 2)
      (message (#Kein-BootDock-Verzeichnis @default-dest))
      (if (= Userqualifikation 0)
      (
         (message (#Kein-BootDock-Anfaenger @default-dest))
      ))
      (exit (quiet))
   ))

   (if (= @user-level 1) (user 0))
 
   (message #Startup-Sequence-rekonstruieren)
   (user Userqualifikation)
   (delete "S:Startup-Sequence" (infos))
   (rename (tackon @default-dest "Bootdateien/Workbench-Startup") "S:Startup-Sequence")
   (message #Bootdateien-nach-SYS)
   (
      foreach (tackon @default-dest "Bootdateien") "#?"
      (
         rename (tackon (tackon @default-dest "Bootdateien") @each-name) (tackon "SYS:" @each-name)
      )
   )
   (delete @default-dest (all))
   (delete @default-dest)
   (delete (tackon Uebergeordnetes-Verzeichnis "BootDock.info"))
   (set @default-dest "RAM:")
   (exit #Deinstallation-fertig (quiet))
))

(if (< (/ (getversion) 65536) 38)
(
    (abort #Falsche-ROM-Version)
))

(user 2)

(message #Information)

(set @user-level 1)

(welcome)

(set Userqualifikation @user-level)

(user 2)

(set Installwunsch
   (askchoice
      (prompt #Install-Optionen)
      (help #Install-Optionen-Hilfe)
      (choices #Install-Moeglichkeit-1 #Install-Moeglichkeit-2 #Install-Moeglichkeit-3)
   )
)

(user Userqualifikation)

(if ( = Installwunsch 0)
(
   (Installieren)
))

(if ( = Installwunsch 1)
(
   (Updaten)
))

(if ( = Installwunsch 2)
(
   (Entfernen)
))

