
; ******************************************
; *                                        *
; *       TTime-Installationsskript        *
; *                                        *
; *  $VER: 1.7 (28.02.99) by J.Reinert     *
; *                                        *
; ******************************************



; *************************************************************************
; Neue Definition der globalen Konstanten
; *************************************************************************

(set #liesmichtext  "Lies_mich.TXT")      ; Schlusswort
(set #tempdir       "RAM:TT_Temp")        ; Ziel zum entpacken
(set #oldinstall 0)                       ; Alte Installation oder nicht
(set #aiconname     "TTime-Start")        ; Name Autostart-Icon
(set #aiconsource   "TTime-Start.noinfo") ; Quellname Autostart-Icon
(set #aicondest     "SYS:WBStartup")      ; Ziel für Autostart-Icon

(set #doksource     "_anleitungen.lha")   ; Anleitungen
(set #arexxsource   "_arexx.lha")         ; ARexx-Beispiele
(set #datasource    "_daten.lha")         ; Daten
(set #libssource    "_librarys.lha")      ; Librarys
(set #progssource   "_programme.lha")     ; Programme
(set #updatesource  "_update.lha")        ; Neue Dateien
(set #extrassource  "_extras.lha")        ; Zusatzprogramme
(set #regdatasource "regdatas")           ; Registrierdaten

; *************************************************************************
; Version der Workbench bestimmen
; *************************************************************************

(set #os_version (/ (getversion "libs:version.library") 65536))

; *************************************************************************
; Definition der deutschen Texte
; *************************************************************************

(set #bad-kick
  (cat ""@app-name" benötigt Amiga-OS 2.04 oder höher!\n"
       "Dies wäre jetzt der richtige Zeitpunkt, Ihren "
       "Rechner aufzuwerten. "
  )
)

(set #askdirmsg
  (cat "Wo befindet sich Ihre alte Schublade 'TTime-Deluxe' bzw. wo "
       "soll TTime-Deluxe neu installiert werden?"
  )
)

(set #askdirhelp
  (cat "Wenn Sie ein Verzeichnis auswählen, in welchem sich bereits "
       "eine Schublade mit Namen 'TTime-Deluxe' befindet, wird diese "
       "Schublade auch verwendet. Andernfalls wird eine neue Schublade "
       "angelegt.\n\n"
       "Bei Updates und vervollständigen von Daten (Dateien aus der "
       "Registrierung), sollten Sie auf jeden Fall das Verzeichnis auswählen, "
       "in dem sich die 'TTime-Deluxe'-Schublade befindet."
  )
)

(set #askinstallnew
  (cat "Wenn Sie 'TTime-Deluxe' neu installieren möchten, können Sie "
       "fortfahren. Programm- und Datenschublade werden dann angelegt.\n\n"
       "Wenn Sie jedoch eine bestehende Installation updaten oder nur Ihre "
       "Registrierdaten umkopieren möchten, sollten Sie jetzt Abbrechen "
       "und das Installer-Skript neu starten. Wählen Sie dann das "
       "Verzeichnis aus, in dem sich die Schublade 'TTime-Deluxe' befindet."
  )
)

(set #askdeleteolddata
  (cat "Indexdateien, Keyfile und TTime-Daten wurden, soweit vorhanden, "
       "soeben aus den Systemverzeichnissen 'S:' und 'Libs:' in die neu angelegte "
       "Daten-Schublade kopiert. \n\n"
       "Die betreffenden Dateien können jetzt aus dem Systemverzeichnis "
       "entfernt werden. Beachten Sie, daß Ihre ältere TTime-Installation "
       "dann nicht mehr richtig funktioniert."
  )
)

(set #wizardhelp
  (cat "Die 'wizard.library' wird von einigen Programmen zum erzeugen "
       "von Fenster benötigt."
  )
)

(set #helpwbstartup
  (cat "Da Sie ein Autostart-Icon installiert haben, ist es nicht mehr "
       "notwendig, daß Sie das Programm 'TTime-Deluxe' in der 'WBStartup' - Schublade "
       "belassen. Entfernen Sie es bitte."
  )
)

(set #askwbstartup
  (cat "Möchten Sie, daß 'TTime-Deluxe' bei jedem Rechner-Start "
       "automatisch in den Arbeitsspeicher geladen wird ? \n\n"
       "Wenn ja, wird im nächsten Schritt ein Projekt-Icon "
       "in den 'WBStartup'-Ordner Ihrer Boot-Disk/-Partition abgelegt"
  )
)

(set #aiconfail1
  (cat "Es existiert keine 'WBStartup'-Schublade auf Ihrer SYS- "
       "Partition. Wenn Sie 'TTime-Deluxe' bei jedem Rechner-Start "
       "automatisch in Ihren Rechner laden möchten, wird diese unbedingt "
       "benötigt.\n\nSoll eine Schublade erzeugt werden?"
  )
)

(set #aiconfail2
  (cat "Leider existiert keine 'WBStartup'-Schublade auf Ihrer SYS- "
       "Partition. Automatischer Programmstart ist daher leider nicht möglich."
  )
)

(set #hinweis
  (cat " ---- Bitte beachten ----\n"
       "Wenn Sie TTime-Deluxe in ein neues Verzeichnis installiert "
       "haben sollten und Projekteinstellungen und/oder Logdateien von einer "
       "älteren Installation weiter verwenden möchten, so müssen Sie die "
       "betreffenden Dateien noch umkopieren."
  )
)

; *************************************************************************
; Archiv entpacken
; *************************************************************************

(Procedure unarc arcname nachricht
  (if (exists arcname)
    (
      (if (askbool (prompt nachricht) (help "") (default 0) (choices "Ja" "Nein"))
        (
          (makedir #tempdir)
          (working (cat "Entpacke Datei " arcname))
          (run (cat "lhex -qfw=" #tempdir " x " arcname))
        )
      )
    )
  )
)

; *************************************************************************
; Temp-Dir leeren
; *************************************************************************

(Procedure deletetemp
  (run (cat "Delete " #tempdir " all"))
)

; *************************************************************************
; Unterprogramm zum kopieren vorhandener Dateien
; *************************************************************************

(Procedure copyexists fnamesource fnamedest
  (if (exists fnamesource)
    (
      (copyfiles (source fnamesource) (dest fnamedest) (infos))
    )
  )
)

; *************************************************************************
; Beginn der Installation
; *************************************************************************

(complete 0)

(deletetemp)

(if (< #os_version 37)
  (
    (abort #bad-kick)
  )
)

(welcome)

; *************************************************************************
; Zielverzeichnis auswählen lassen
; *************************************************************************

(set name
  (askdir
    (prompt  #askdirmsg)
    (help    #askdirhelp)
    (default @default-dest)
  )
)

(set #destname (tackon name "TTime-Deluxe"))
(set #iconname (tackon #destname "TTime-Deluxe"))
(set #pdrwicon (cat #destname ".info"))
(set #ttimename #iconname)
(set #keysdest (tackon #destname "Daten"))
(set #sdest    (tackon #destname "Daten"))

; *************************************************************************
; Alte Installation prüfen
; *************************************************************************

(if (exists (tackon #destname "TTime-Deluxe") (noreq))
  (set #oldinstall 1)
)

(if (exists (tackon #destname "TT-Abrechnung") (noreq))
  (set #oldinstall 1)
)

(if (exists (tackon #destname "TT-Screenmanager") (noreq))
  (set #oldinstall 1)
)

(complete 5)

; *************************************************************************
; Datenschubladen erzeugen
; *************************************************************************

(if (= #oldinstall 0)             ; Programmschublade erzeugen
  (
    (message #askinstallnew)
    (makedir #destname (infos))
  )
)

(if (exists #sdest)               ; Prüfen auf Daten-Schublade
  (
    (set #copyolddata 0)          ; Schublade da, also Daten auch da
  )
  (
    (makedir #sdest)              ; Es gab keine Schublade ...
    (set #copyolddata 1)          ; also Daten umkopieren
  )
)

(complete 10)

; *************************************************************************
; Kopieren der alten Daten und Configs
; *************************************************************************

(if #copyolddata
  (
    (copyexists ("S:T-Export.CFG") (#sdest))
    (copyexists ("S:T-Net.IDX") (#sdest))
    (copyexists ("S:T-Net_Special.IDX") (#sdest))
    (copyexists ("S:T-Net_Welt.IDX") (#sdest))
    (copyfiles (source "S:") (dest #sdest) (pattern "TTime#?"))
    (copyfiles (source "S:") (dest #sdest) (pattern "#?.TTCFG"))
    (copyfiles (source "S:") (dest #sdest) (pattern "TT2_#?.TAB"))
    (copyfiles (source "Libs:") (dest #sdest) (pattern "TTime#?.KEY"))

    (if (askbool (prompt #askdeleteolddata) (choices "Daten entfernen" "Daten NICHT entfernen") (default 0) (help @askbool-help))
      (
        (delete "S:T-Export.CFG"      (optional "askuser"))
        (delete "S:#?.TTCFG"          (optional "askuser"))
        (delete "S:TTime#?"           (optional "askuser"))
        (complete 83)
        
        (delete "S:T-Net.IDX"         (optional "askuser"))
        (delete "S:T-Net_Special.IDX" (optional "askuser"))
        (delete "S:T-Net_Welt.IDX"    (optional "askuser"))
        (complete 86)

        (delete "S:TT2_#?.TAB"      (optional "askuser"))
        (complete 88)
        
        (delete "Libs:TTime#?.KEY"  (optional "askuser"))
      )
    )
  )
)

(complete 15)

; *************************************************************************
; Kopieren der Librarys
; *************************************************************************

(unarc #libssource "\nLibrarys kopieren?")
(if (exists #tempdir)
  (
    (if (> #os_version 38)
      (
        (set tempname (tackon #tempdir "wizard.library_OS3"))
      )
      (
        (set tempname (tackon #tempdir "wizard.library_OS2"))
      )
    )
    (if (exists tempname)
      (
        (rename tempname (tackon #tempdir "wizard.library"))
        (copylib (prompt "Kopieren der 'wizard.library'") (help #wizardhelp) (source (tackon #tempdir "wizard.library")) (dest "Libs:") (confirm "EXPERT"))
      )
    )
    (deletetemp)
  )
)
(complete 20)

; *************************************************************************
; Kopieren der Programme
; *************************************************************************

(unarc #progssource "\nProgramme kopieren?")
(if (exists #tempdir)
  (
    (copyfiles (source #tempdir) (dest #destname) (all))
    (deletetemp)
  )
)
(complete 30)

; *************************************************************************
; Kopieren der Daten
; *************************************************************************

(unarc #datasource "\nDaten kopieren?")
(if (exists #tempdir)
  (
    (copyfiles (source #tempdir) (dest #destname) (all))
    (deletetemp)
  )
)
(complete 40)

; *************************************************************************
; Kopieren der ARexx-Beispiele
; *************************************************************************

(unarc #arexxsource "\nARexx-Beispiele kopieren?")
(if (exists #tempdir)
  (
    (copyfiles (source #tempdir) (dest #destname) (all))
    (deletetemp)
  )
)
(complete 50)

; *************************************************************************
; Kopieren der Anleitungen
; *************************************************************************

(unarc #doksource "\nAnleitungen kopieren?")
(if (exists #tempdir)
  (
    (copyfiles (source #tempdir) (dest #destname) (all))
    (deletetemp)
  )
)
(complete 60)

; *************************************************************************
; Kopieren von Update-Dateien in Zielordner
; *************************************************************************

(unarc #updatesource "\nUpdates kopieren?")
(if (exists #tempdir)
  (
    (copyfiles (source #tempdir) (dest #destname) (all))
    (deletetemp)
  )
)
(complete 70)

; *************************************************************************
; Kopieren von Extra-Dateien in Zielordner
; *************************************************************************

(unarc #extrassource "\nExtras kopieren?")
(if (exists #tempdir)
  (
    (copyfiles (source #tempdir) (dest #destname) (all))
    (deletetemp)
  )
)
(complete 75)

; *************************************************************************
; Kopieren von Keyfile und Tabellen
; *************************************************************************

(if (exists #regdatasource)
  (
    (if (askbool (prompt "\nRegistrierdaten und Tabellen kopieren?") (help "") (default 0) (choices "Ja" "Nein"))
      (
        (copyfiles (source #regdatasource) (dest #sdest) (all))
      )
    )
  )
)
(complete 80)

; *************************************************************************
; Kopieren des Autostart-Icons
; *************************************************************************

(if (exists #aiconsource)
 (
  (if (not (exists #aicondest))
    (if (askbool (prompt #aiconfail1) (help "") (default 0) (choices "Ja" "Nein"))
      (makedir #aicondest (infos))
    )
  )
  (if (exists #aicondest)
    (
      (if (exists #ttimename)
        (
          (if ((askbool (prompt #askwbstartup) (help "") (default 0) (choices "Ja" "Nein")))
            (
              (copyfiles (prompt  "Icon kopieren") (source  #aiconsource) (dest    #aicondest) (newname (cat #aiconname ".info")))

; *************************************************************************
; Default-Tool und Tooltypes (Zukunft) eintragen
; *************************************************************************

              (set #newaiconname (tackon #aicondest #aiconname))

              (if (exists (cat #newaiconname ".info"))
                (
                  (Tooltype (dest #newaiconname) (Setdefaulttool #ttimename))
                  (if (exists "SYS:WBStartup/TTime-Deluxe")
                    (message #helpwbstartup)
                  )
                )
              )
            )
          )
        )
      )
    )
    (
      (message #aiconfail2)
    )
  )
 )
)

(deletetemp)
(run (cat "Delete " #sdest ".info"))
(complete 100)

; *************************************************************************
; Aktuelles Verzeichnis setzen
; *************************************************************************

(set @default-dest #destname)

(message #hinweis)

; *************************************************************************
; Falls vorhanden, einen LiesMich-Text anzeigen
; *************************************************************************

(if (exists #liesmichtext)
  (run (cat "run sys:utilities/more " #liesmichtext))
)

; *************************************************************************
; Ende der Installation
; *************************************************************************

