; Dieses Skript dient der Installation/Deinstallation
; des UMS ZConnect Im-/Exporters UMSZCo
;
; $Id: Install_UMSZCo 1.4 1997/04/13 01:15:42 asp Exp asp $
;
; $VER: Install_UMSZCo 1.4 (13.4.97)


(onerror (p_errorhandling))


; ---------- Dateinamen / Verzeichnisse allgemein ----------

(set #umsdir "UMS:")
(set #bindir "bin")
(set #docdir "doc/deutsch")



; ---------- Deutsche Texte ----------

; ---------- allgemein ----------

(set #msg-welcome
  (cat
    "Willkommen zur Installation des UMS ZConnect-Paketes UMSZCo. "
    "Bitte wählen Sie Ihren Wissenstand über den Amiga"
  )
)

(set #msg-transcript "UMSZCo - Installation")

(set #msg-installer-version
  (cat
    "Sie haben leider eine zu alte Version des Installers "
    "installiert. Sie benötigen mindestens V42.7! Eine aktuelle "
    "Version bekommen sie in jeder gut sortierten Mailbox und "
    "im Aminet in util/misc"
  )
)

(set #msg-os-version
  (cat
    "Für die Benutzung von UMSZCo wird mindestens die Betriebssystem-Version "
    "37 (OS2.04) benötigt.\n\nSie haben jedoch nur Version %ld installiert."
  )
)

(set #msg-choice-prompt "Bitte wählen Sie, ob Sie installieren oder deinstallieren möchten")
(set #msg-choice-help
  (cat
    "Wählen Sie Installieren, wenn Sie UMSZCo auf Ihr System kopieren möchten "
    "oder wählen Sie Deinstallieren, wenn Sie UMSZCo von Ihrem System löschen "
    "möchten."
  )
)


; ---------- getpath ----------

(set #msg-umsdir-prompt "Bitte wählen sie das UMS-Hauptverzeichnis aus")
(set #msg-umsdir-help
  (cat
    "Geben sie hier das Verzeichnis an, in dem UMS installiert wurde. "
    "UMSZCo kann nur in eine bestehende UMS-Installation eingefügt werden.\n\n"
    "Bei Bedarf werden die Verzeichnisse \"bin\", \"doc\", \"doc/deutsch\", "
    "\"install\" und \"install/deutsch\" eingerichtet."
  )
)
(set #msg-umsdir-abort
  (cat
    "Das UMS-Installationsverzeichnis \"UMS:\" wurde nicht gefunden. "
    "Vor der Installation von UMSZCo muß zuerst UMS installiert werden!"
  )
)



; ---------- Installation ----------

(set #msg-copyall "Kopiere UMSZCo-Dateien")
(set #msg-copyall-prompt "Installiere %s")


; ---------- Deinstallation ----------

(set #msg-deleteall-prompt "Die Datei\n\n%s\n\nwird gelöscht")
(set #delete-help
  (cat
    "Wenn Sie 'Weiter' wählen wird die angegebene Datei gelöscht. "
    "Mit 'Diesen Teil überspringen' wird die Datei nicht gelöscht."
  )
)
(set #msg-delconfig
  (cat
    "Sollten Sie nicht zusätzlich UMSZer installiert haben, "
    "so entfernen Sie nun bitte noch sämtliche Einträge, die mit 'zer.' "
    "beginnen, aus Ihrer UMS Konfigurationsdatei.\n\n"
    "Dann ist UMSZCo vollständig von Ihrem System gelöscht."
  )
)



; --------------------------------------------------------------------


(procedure p_getpath #gp-defaultdir #gp-prompt #gp-help #gp-msg-abort
  (if (not (exists #gp-defaultdir (noreq)))
    (set #gp-defaultdir "")
  )

  (set #gp-res "")

  (if (or (= #gp-defaultdir "") (= @user-level 2))
    (
      (while (= #gp-res "")
        (set #gp-res
          (askdir
            (prompt #gp-prompt)
            (help #gp-help)
            (default #gp-defaultdir)
          )
        )

        (if (not (exists #gp-res (noreq)))
          (set #gp-res "")
        )

        (if (and (= #gp-res "") (= @user-level 0))
          (abort #gp-msg-abort)
        )
      )
    )
    (set #gp-res #gp-defaultdir)
  )

  (set #gp-res (expandpath #gp-res))
)


; --------------------------------------------------------------------


; Fehlerbehandlung, evt. alten Zustand wieder herstellen

(procedure p_errorhandling
  ; noch nicht implementiert
)


; --------------------------------------------------------------------


; Hauptteil

; mind. OS 2.04 (V37) benötigt

(set #os-version (/ (getversion) 65536))
(if (< #os-version 37)
  (
    (message (#msg-os-version #os-version) (all))
    (exit (quiet))
  )
)


; mind. Installer V42.7 benötigt

(if (< @installer-version 2752519)
  (
    (message #msg-installer-version (all))
    (exit (quiet))
  )
)


(welcome #msg-welcome)
(transcript #msg-transcript)

(complete 0)


(set #instchoice (askchoice
    (prompt #msg-choice-prompt)
    (help #msg-choice-help)
    (choices "Installation" "Deinstallation")
    (default 0)
  )
)



; Installationsverzeichnis ermitteln

(set @default-dest
  (p_getpath #umsdir #msg-umsdir-prompt #msg-umsdir-help #msg-umsdir-abort)
)


(set #bindirfull (tackon @default-dest #bindir))
(set #docdirfull (tackon @default-dest #docdir))

(set #actdir (expandpath "//"))


(complete 1)

(if (= #instchoice 0)
  (
    ; Installation


    ; Im selben Verzeichnis installieren?

    (set #inplace (= #actdir @default-dest))

    (working #msg-copyall)

    (if (= #inplace 0)
      (
        (set #n 0)

        (makedir (tackon @default-dest "bin"))
        (makedir (tackon @default-dest "doc") (infos))
        (makedir (tackon @default-dest "doc/deutsch") (infos))
        (makedir (tackon @default-dest "install") (infos))
        (makedir (tackon @default-dest "install/deutsch") (infos))

        (complete 2)

        (while
          (set #filename
            (select #n "bin/zcoimport"
                       "bin/zcoexport"
                       "doc/deutsch/UMSZCo.guide"
                       "install/Install_UMSZCo"
                       ""
            )
          )
          (
            (copylib
              (prompt   (#msg-copyall-prompt #filename))
              (help     @copyfiles-help)
              (source   (tackon #actdir #filename))
              (dest     (tackon @default-dest (pathonly #filename)))
              (confirm)
              (optional "force" "askuser")
            )
            (set #n (+ #n 1))

            (complete (* #n 23))
          )
        )


        ; Guide-Info nur kopieren wenn nicht vorhanden

        (set #filename "doc/deutsch/UMSZCo.guide.info")

        (if (not (exists (tackon @default-dest #filename)))
          (copyfiles
            (prompt   (#msg-copyall-prompt #filename))
            (help     @copyfiles-help)
            (source   (tackon #actdir #filename))
            (dest     (tackon @default-dest (pathonly #filename)))
            (confirm)
            (optional "force" "askuser")
          )
        )

        (complete 96)


        ; Install-Icon kopieren, wenn nicht vorhanden

        (set #filename "install/deutsch/Install_UMSZCo.info")

        (if (not (exists (tackon @default-dest #filename)))
          (copyfiles
            (prompt   (#msg-copyall-prompt #filename))
            (help     @copyfiles-help)
            (source   (tackon #actdir #filename))
            (dest     (tackon @default-dest (pathonly #filename)))
            (confirm)
            (optional "force" "askuser")
          )
        )
      )
    )
  )

  (
    ; Deinstallation

    (set #n 0)

    (while
      (set #filename
        (select #n "bin/zcoimport"
                   "bin/zcoexport"
                   "doc/deutsch/UMSZCo.guide"
                   "install/Install_UMSZCo"
                   "install/deutsch/Install_UMSZCo.info"
                   ""
        )
      )
      (
        (set #delfilename (tackon @default-dest #filename))

        (delete #delfilename
          (prompt   (#msg-deleteall-prompt #delfilename))
          (help     #delete-help)
          (optional "force" "askuser")
          (infos)
          (confirm)
        )
        (set #n (+ #n 1))

        (complete (* #n 20))
      )
    )

    (message #msg-delconfig (all))
    (exit (quiet))
  )
)

(complete 100)

