
; ******************************************
; *                                        *
; *       TTime-Installationsskript        *
; *                                        *
; *  $VER: 1.8 (26.12.01) 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 "@app-name" 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 '"@app-name"' neu installieren möchten, können Sie "
       "fortfahren. Programm- und Datenschublade werden dann angelegt.\n\n"
       "Wenn Sie jedoch eine bestehende Installation updaten "
       "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 #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 " Bei TTime-Installation bitte beachten\n\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)
)

(complete 5)

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

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

(if (not(exists #sdest))          ; Prüfen auf Daten-Schublade
  (
    (makedir #sdest)              ; Es gab keine Schublade ...
  )
)

(complete 10)

; *************************************************************************
; 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)

    (if (exists (tackon #destname "ConvertLog.s"))
      (
        (working "Konverter läuft")
        (execute (cat(tackon #destname "ConvertLog.s ") #destname))
        (delete (tackon #destname "ConvertLog.s"))
        (delete (tackon #destname "ConvertLog"))
      )
    )

  )
)
(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
; *************************************************************************

