; Installationsscript fr den FKM 3.0

(if
  (NOT
    (askbool
       (prompt 'Wollen Sie den FKM installieren oder eine bestehende Version von der Festplatte lschen?')
       (help @askchoice-help)
       (choices 'Installieren' 'Deinstallieren')
       (default 1)
    )
  )

; Deinstallieren

  (
    (set ziel
      (askdir
        (prompt 'In welchem Verzeichnis befindet sich der FKM?')
        (help @askdir-help)
        (default 'Work:FKM')
      )
    )

    (if
      (askbool
        (prompt (cat 'Wollen Sie das Verzeichnis \"' ziel '\" wirklich lschen? Smtliche von Ihnen gespeicherte Fahrzeugdateien gehen dadurch verloren.'))
        (help @askbool-help)
      )

      (run (cat 'delete ' ziel ' all'))
    )

    (message 'Der FKM wurde erfolgreich von der Festplatte entfernt.');
    (exit (quiet))

  )

; Installieren

  (
    (set install
      (askbool
         (prompt 'Wollen Sie den FKM neu installieren oder von einer bestehenden Version ein Update machen?')
         (help @askchoice-help)
         (choices 'Neu installieren' 'Update')
         (default 1)
      )
    )

    (set quel (pathonly @icon))
    (set quel2 'ram:FKM-Install')
    (complete 0)

    (makedir quel2)
    (working 'Dateien werden entpackt.')
    (run (cat (tackon quel 'lha') ' x ' (tackon quel 'FKM.lha') ' ' quel2 '/ >NIL:')
      (prompt ('Das gepackte Verzeichnis \"FKM.lha\" wird auf die Ram-Disk entpackt'))
    )
    (working '')
    (complete 10)

    (if install
      (
        (set ziel
          (tackon
            (askdir
              (prompt 'Wohin soll das Verzeichnis fr den FKM kopiert werden?')
              (help @askdir-help)
              (default 'Work:')
            )
            'FKM'
          )
        )
        (set @default-dest ziel)

        (makedir ziel
           (prompt (cat 'Das Verzeichnis \"' ziel '\" fr den FKM wird erstellt.'))
           (help @makedir-help)
           (infos)
        )

        (copyfiles
          (prompt (cat 'Die Datei \"FKM\" wird nach \"' ziel '\" kopiert.'))
          (help @copyfiles-help)
          (source quel2)
          (dest ziel)
          (pattern 'FKM')
          (files)
          (infos)
        )
        (complete 25)

        (copyfiles
          (prompt (cat 'Die Datei \"FKM.guide\" (die Online-Hilfe und Anleitung des FKM) wird nach \"' ziel '\" kopiert.'))
          (help @copyfiles-help)
          (source quel2)
          (dest ziel)
          (pattern 'FKM.guide')
          (files)
          (infos)
        )
        (complete 40)

        (makedir
          (tackon ziel 'Wagen')
          (prompt 'Das Verzeichnis fr die Fahrzeug-Dateien wird eingerichtet')
          (help @makedir-help)
          (infos)
        )
        (complete 45)

        (if
          (askbool
             (prompt 'Soll die Beispiel Fahrzeug-Datei kopiert werden?')
             (help @askchoice-help)
             (choices 'Ja' 'Nein')
             (default 1)
          )

          (copyfiles
            (prompt 'Die Beispiel Fahrzeug-Datei wird kopiert')
            (help @copyfiles-help)
            (source (tackon quel2 'Wagen'))
            (dest (tackon ziel 'Wagen'))
            (all)
            (files)
          )
        )
        (complete 50)

        (makedir
          (tackon ziel 'Listen')
          (prompt 'Das Verzeichnis fr die Listen wird eingerichtet')
          (help @makedir-help)
          (infos)
        )
        (complete 55)

        (copyfiles
           (prompt (cat 'Die vorgegebenen Listen werden nach \"' (tackon ziel 'Listen') '\" kopiert.'))
           (help @copyfiles-help)
           (source (tackon quel2 'Listen'))
           (dest (tackon ziel 'Listen'))
           (all)
        )
        (complete 60)

      )
      (
        (set ziel
          (askdir
            (prompt 'In welchem Verzeichnis befindet sich der FKM?')
            (help @askdir-help)
            (default 'Work:FKM')
          )
        )
        (set @default-dest ziel)

        (if (= (exists (tackon ziel 'FKM')) 1)
          (
            (if (<> (getsize (tackon quel 'FKM')) (getsize (tackon ziel 'FKM')))
              (
                (delete
                  (tackon ziel 'FKM')
                  (prompt 'Die Datei \"FKM\" wird gelscht.')
                  (help @delete-help)
                )
                (copyfiles
                  (prompt (cat 'Die Datei \"FKM\" wird nach \"' ziel '\" kopiert.'))
                  (help @copyfiles-help)
                  (source quel2)
                  (dest ziel)
                  (pattern 'FKM')
                  (files)
                )
              )
            )
            (complete 25)

            (if (<> (getsize (tackon quel2 'FKM.guide')) (getsize (tackon ziel 'FKM.guide')))
              (
                (delete
                  (tackon ziel 'FKM.guide')
                  (prompt 'Die Datei \"FKM.guide\" wird gelscht.')
                  (help @delete-help)
                )
                (copyfiles
                  (prompt (cat 'Die Datei \"FKM.guide\" (die Online-Hilfe und Anleitung des FKM) wird nach \"' ziel '\" kopiert.'))
                  (help @copyfiles-help)
                  (source quel2)
                  (dest ziel)
                  (pattern 'FKM.guide')
                  (files)  
                )
              )
            )
            (complete 40)

            (if (= (exists (tackon ziel 'Wagen') (noreq)) 0)
              (
                (makedir
                  (tackon ziel 'Wagen')
                  (prompt 'Das Verzeichnis fr die Fahrzeug-Dateien wird eingerichtet')
                  (help @makedir-help)
                  (infos)
                )
                (complete 45)

                (copyfiles
                  (prompt (cat 'Die bestehenden Fahrzeug-Dateien werden werden nach \"' (tackon ziel 'Wagen') '\" kopiert.'))
                  (help @copyfiles-help)
                  (source ziel)
                  (dest (tackon ziel 'Wagen'))
                  (pattern '#?.(FKM|BAK)')
                  (files)
                )
                (copyfiles
                  (help @copyfiles-help)
                  (source (tackon ziel 'FKM-Startup'))
                  (dest (tackon ziel 'Wagen'))
                  (newname 'FKM-Fahrzeugliste')
                  (files)
                )
                (complete 50)

                (run
                   (cat 'delete \"' (tackon ziel '#?.(FKM|BAK)') '\" all')
                )

                (delete
                   (tackon ziel 'FKM-Startup')
                )
                (complete 65)

                (makedir
                  (tackon ziel 'Listen')
                  (prompt 'Das Verzeichnis fr die Listen wird eingerichtet')
                  (help @makedir-help)
                  (infos)
                )
                (complete 55)

                (copyfiles
                   (prompt (cat 'Die vorgegebenen Listen werden nach \"' (tackon ziel 'Listen') '\" kopiert.'))
                   (help @copyfiles-help)
                   (source (tackon quel2 'Listen'))
                   (dest (tackon ziel 'Listen'))
                   (all)
                )
                (complete 60)
              )
            )
          )

          (abort 'Im gewhlten Verzeichnis kann der FKM nicht gefunden werden.\n\nDas Installationsprogramm bricht ab.')
        )
      )
    )

    (copylib
      (prompt 'Die AmigaGuide-Library wird gegebenfalls nach LIBS: kopiert.')
      (help @copylib-help)
      (source (tackon quel2 'libs/amigaguide.library'))
      (dest 'LIBS:');
    )
    (complete 70)

    (run (cat 'delete ' quel2 ' all')
      (prompt 'Lsche Dateien auf der Ram-Disk.')
    )
    (complete 75)

    (if (= (exists (tackon quel 'FKM.keyfile')) 1)
      (copyfiles
        (prompt (cat 'Die Datei \"FKM.keyfile\" (das Keyfile fr registrierte Benutzer des FKM) wird nach \"' ziel '\" kopiert.'))
        (help @copyfiles-help)
        (source quel)
        (dest ziel)
        (pattern 'FKM.keyfile')
        (files)
      )
    )
    (complete 85)

    ; Gegebenenfalls CycleToMenu installieren

    (if
      (askbool
         (prompt 'Wollen Sie das Commodity \"CycleToMenu 2.1\" von Federico Giannici in Ihrem WBStartup-Verzeichnis installieren? Dies ist empfehlenswert, da es die Bedienung des FKM sehr erleichtert.')
         (help @askchoice-help)
         (choices 'CycleToMenu installieren' 'Nicht installieren')
         (default 1)
      )

      (
        (set quel2 'Ram:CycleToMenu-2.1')

        (working 'Dateien werden entpackt.')
        (run (cat (tackon quel 'lha') ' x ' (tackon quel 'CycleToMenu.lha') ' Ram: >NIL:')
          (prompt ('Das gepackte Verzeichnis \"CycleToMenu.lha\" wird auf die Ram-Disk entpackt'))
        )
        (working '')

        (complete 90)

        (run (tackon quel2 'KillCTM'))
        (run 'Wait 2')

        (copyfiles
          (prompt (cat 'Die Datei \"CycleToMenu\" wird nach \"SYS:WBStartup\" kopiert.'))
          (help @copyfiles-help)
          (source quel2)
          (dest 'SYS:WBStartup')
          (pattern 'CycleToMenu')
          (files)
          (infos)
        )

        (if (exists 'Locale:' (noreq))
          (
            (copyfiles
              (prompt 'Kopiere Katalogdatei fr CycleToMenu.')
              (help @copyfiles-help)
              (source (tackon quel2 'Deutsch'))
              (dest 'Locale:Catalogs/deutsch/')
              (pattern 'cycletomenu.catalog')
              (files)
            )
          )
        )
        (complete 95)

        (copyfiles
          (prompt 'Kopiere Anleitung fr CycleToMenu nach \"' ziel '\".')
          (help @copyfiles-help)
          (source (tackon quel2 'Deutsch'))
          (dest ziel)
          (pattern 'CycleToMenu.doc')
          (files)
          (confirm)
        )

        (run (cat 'delete ' quel2 ' all')
          (prompt 'Lsche Dateien auf der Ram-Disk.')
        )
        (delete (cat quel2 '.info'))

        (run 'run SYS:WBStartup/CycleToMenu CX_POPUP=No')
      )
    )

    (complete 100)

    (exit 'Der FKM 3.0 wurde erfolgreich installiert!\n\nViel Spa mit dem FKM wnscht\nStefan Thom');

  )
)






