;*************************************************************************
;*  ArtEffect Installer Version 1.0 19 Juni 1996                         *
;*                                                                       *
;*  Installer Revision by Jürgen Haage                                   *
;*  ©1996 HAAGE & PARTNER Computer GmbH                                  *
;*                                                                       *
;*  If you have any installer questions please let us know!              *
;*                                                                       *
;*************************************************************************
;
; $VER: ArtEffect V1.0 Install Version 1.0 (19.6.96)

(complete 0)

; Die Versionsnummer und das Erstellungs-Datum der hier installierten
; Versionen.

(set stw-version "1.0.1")
(set stw-date "(14 Juni 96)")

;====================================================================
; Initialisierungen

(set @default-dest "")

(set os-version (/ (getversion) 65536))
(set os-13 (< os-version 36))
(set os-20 (>= os-version 36))
(set os-21 (>= os-version 38))

(set totalmem (database "total-mem")) ; Diese schöne Funktion vereinfacht einiges

(set size-komplett	3000000)

;====================================================================
; Initialisierungen

    (set #yeskey "Ja")
    (set #nokey "Nein")

    (set #wrongos "\n Sorry, dieses Paket benoetigt mind. OS2.04.\n")

(set #welcome (cat	"\nWillkommen bei der Installation von \n\n"
               "ArtEffect\n"
					"" stw-version " vom "stw-date"\n\n"
					"Dieses Skript entpackt ArtEffect, kopiert\n"
					"die aktuelle BGUI-Library auf Ihre Festplatte\n"
					"und erzeugt einen Assign.\n\n\n"
					"© Copyright 1996 HAAGE & PARTNER Computer GmbH"))

    (set #oldversion (cat "\n"
        "Auf Ihrer Festplatte befindet sich bereits    \n"
        "eine Installation von ArtEffect!            \n"
        ))

    (set #oldversion_help (cat "\n"
        "Wählen Sie einfach die bereits vorhandene     \n"
        "Schublade an, wenn Sie ihr altes System       \n"
        "aktualisieren möchten!                          "
        ))
    (set #new    "Neu installieren")
    (set #update "Update über bisherige Version installieren")
    (set #remove "Deinstallation - ArtEffect entfernen")

    (set #chose_path (cat
        "Auswahl des Pfades für die Installation       \n"
        "Bitte wählen Sie ein Laufwerk oder eine Schub-\n"
        "lade! Eine Schublade \"ArtEffect\" wird auto- \n"
        "matisch erzeugt.                                "
        ))

    (set #chose_path_help (cat  "\n"
        "Sie können über das Symbol 'Laufwerke anz.'   \n"
        "(bzw. 'Show drives') eine Übersicht über alle \n"
        "Laufwerke Ihres Amiga anfordern; aus dieser   \n"
        "Übersicht sollten Sie nur die oberen, nicht   \n"
        "farblich gekennzeichneten Einträge auswählen. \n"
        "Typische sinnvolle Namen sind z.B. \"WORK:\", \n"
        "\"HD0:\" oder \"DH0:\" nicht verwenden sollten\n"
        "Sie Namen wie \"DF0:\", \"DF1:\", \"DF2:\",   \n"
        "\"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", \n"
        "\"WB_2.x:\", \"System3.0:\" oder \"WB_3.x:\"! \n"
        "                                              \n"
        "                                              \n"
        "ArtEffect kann nur in eine Schublade nicht aber\n"
        "auf eine Partition direkt installiert werden! \n"
        "Wenn Sie also nur ein Laufwerk für die        \n"
        "Installation auswählen, wird Ihnen eine       \n"
        "Fehlermeldung angezeigt!\n\n"
        @askdir-help))

    (set #auswahlhilfe (cat "\n"
        "Auf Ihrer Festplatte befindet sich bereits    \n"
        "eine Version der Datei die installiert werden \n"
        "soll.                                         \n"
        "                                              \n"
        "Wählen Sie \"Ja\", wenn Sie die alte Datei mit\n"
        "der neuen überschreiben möchten.              \n"
        "Anderenfalls wählen Sie bitte \"Nein\"!       \n"
        ))

    (set #wrk_justamoment (cat "\n"
        "Das dauert eine geraume Zeit.                 \n"
        "Bitte haben Sie etwas Geduld!                 \n"
        ))

    (set #wrk_guidecrunch (cat "\n"
        "Entpacke das Gestaltungssystem...             \n"
        "                                              \n"
        "ArtEffect - Bildbearbeitung                   \n"
        "                                              \n"
        #wrk_justamoment
        ))

    (set #decrunch_error (cat "\n"
        "                                              \n"
        "Fehler beim Entpacken!                        \n"
        "                                              \n"
        "Stellen Sie bitte sicher, daß Ihre Festplatte \n"
        "ausreichend Speicherkapazität hat, und, falls \n"
        "die Dateien bereits vorhanden sind diese nicht\n"
        "Lösch- oder Schreibgeschützt sind.            \n"
        ))

					
(set #prp-copy-lib
	"Kopiere die BGUI-LIBRARY\n")
(set #hlp-copy-lib
	"Ohne die aktuelle Version der BGUI-Library, funktioniert nichts!")

    (set #prp-insert-disk1 (cat "\n"
        "\n\nBitte legen Sie nun die Diskette 1 \"ArtEffect_Disk1\" "
        "in ein beliebiges Laufwerk ein!"
        ))

    (set #prp-insert-disk2 (cat "\n"
        "\n\nBitte legen Sie nun die Diskette 2 \"ArtEffect_Disk2\" "
        "in ein beliebiges Laufwerk ein!"
        ))

	
; ----------------------------- Prozeduren ------------------------------

(Procedure Make_Folder
    (
    (set folder (tackon folder "ArtEffect"))
        (if (= (exists folder) 0)
            (
            (makedir folder (infos))
            )
            (
            (set update 1)        ; // Doch schon vorhanden!
            )
        )
    )
)

; // Die Pfadnamen der einzelnen Quell-Dateien.
(set source-more                    "ArtEffect_Disk1:C/More")
(set source-lhx                     "ArtEffect_Disk1:C/LHex")
(set source-Guide                   "ArtEffect_Disk1:LIESMICH")

(set archive-ArtEffect1            "ArtEffect_Disk1:ARTEFFECT1.LHA")
(set archive-ArtEffect2            "ArtEffect_Disk2:ARTEFFECT2.LHA")

;=====================================================================================
; Beginn der Installation
;=====================================================================================

; // wird min. unter 2.04 installiert ?

(if (< (/ (getversion) 65536) 37)

    (
        (message #wrongos)

        (exit (quiet))
    )
)

; Eine kleine Einleitung, gefolgt vom Startbild des Installers.

(set act-user-level @user-level)
(user 1)

(message #welcome)

(user act-user-level)
(welcome)


(complete 5)

; // Alte Version prüfen und entsprechende Abfrage ausgeben!--------------------------------------------

(set update   0)

;(if (exists "ArtEffect:" (noreq)) 
;    (
;        (set update 
;            (askchoice
;                (prompt #oldversion)
;                (help   #oldversion_help)
;                (default 1)
;                (choices
;                    #new
;                    #update
;                    #remove
;                )
;            )
;        )
;    )
;)

(set act-user-level @user-level)
(user 1)

(set folder "WORK:ArtEffect")

(if (<> update 0)                        ; // altes Assign benutzen wenn update oder remove
    (
        (set folder (getassign "ArtEffect"))
    )
)

(user act-user-level)

(if (= update 0)
    (
    (set ok 0)
        (while (not ok)
            (set folder
                (askdir
                (prompt #chose_path)
                (help #chose_path_help)    ; // Auswahl Hilfetext
                (default folder)
                (disk)
                )
            )

            (Make_Folder)    ; // Automatisch neues Verzeichnis anlegen!

    (set #dir_error (cat  "\n"
        "Bei Ihrer Auswahl \"" folder "\" handelt es   \n"
        "sich nicht um eine gültige Schublade!         \n"
        "                                              \n"
        "Sie können über das Symbol 'Laufwerke anz.'   \n"
        "(bzw. 'Show drives') eine Übersicht über alle \n"
        "Laufwerke Ihres Amiga anfordern; aus dieser   \n"
        "Übersicht sollten Sie nur die oberen, nicht   \n"
        "farblich gekennzeichneten Einträge auswählen. \n"
        "Über den Schalter \"Neue Schublade anlegen..\"\n"
        "können Sie ein neue Schublade erzeugen. Diese \n"
        "neue Schublade wird auf der Partition        \n"
        "angelegt, die Sie soeben betrachten."
        ))

    (set #memory_error (cat  "\n"
        "Auf der ausgewählten Festplattenpartition     \n"
        "steht nicht genügend freier Speicher für die  \n"
        "komplette Installation des Compilersystems zur\n"
        "Verfügung.                                    \n"
        "                                              \n"
        "Freier Speicher " freediskspace "!            \n"
        "Benötigter Speicher " size-komplett "!        \n"
        "                                              \n"
        "Bitte wählen Sie eine andere Partition, auf   \n"
        "der entsprechende Kapazitäten vorhanden sind!"
        ))


            ; // Ist der Dateiname leer oder endet mit einem ':' oder existiert unter
            ; // diesem Namen kein Verzeichnis, wird eine Fehlermeldung angezeigt; andernfalls
            ; // kann die Auswahl-Schleife beendet werden.
            (if (or (or (or (<= (strlen folder) 0) (= (substr folder (- (strlen folder) 1) 1) ":")) (= (exists folder (noreq)) 0)) (= (getdiskspace folder) -1))
                (message #dir_error)  ; Fehler bei der Auswahl der Schublade
                ;else
                (
                    (set freediskspace (getdiskspace folder))  ; // Der freie Speicher auf diesem Medium
                    (if (< freediskspace size-komplett)
                        (
                        (user 1)
                            (message #memory_error)  ; // nicht genügend freier Speicher
                        )
                     ;else
                        (set ok 1)
                    )
                )
            )
        )
    )
)

(makeassign "ArtEffect")

(user act-user-level)

;// Hier Update-Prozedur einbauen
;
;(if (= update 1))
;	

; // Diskette 1 einlegen!

(askdisk
    (prompt #prp-insert-disk1)
    (help #askdir-help)
    (dest "ArtEffect_Disk1")
)

(complete 10)

; // Lhx wird in die RAM-Disk kopiert, damit das Programm nicht jedesmal von Disk
; // geladen werden muß.

(copyfiles
	(source source-lhx)
	(dest "RAM:")
)

; // Handbuch auf Festplatte kopieren!

(copyfiles
	(source source-Guide)
	(dest folder)
	(infos)
)

(makeassign "ArtEffect" folder)

(run "run ArtEffect_Disk1:C/More ArtEffect:Liesmich")

;=================== Alle 1. ArtEffect-Dateien =====================================================
(complete 20)

; Bildverarbeitung entpacken

(makeassign "lhex_temp" folder)

  (working #wrk_guidecrunch)
  (set COMPERROR (run "ram:lhex -qfw=lhex_temp: x " archive-ArtEffect1))
  (if  ( <> COMPERROR 0)
     (message #decrunch_error)
  )

(complete 50)
;==================================================================================

; // Diskette 2 einlegen!

(askdisk
    (prompt #prp-insert-disk2)
    (help #askdir-help)
    (dest "ArtEffect_Disk2")
)

;=================== Alle 2. ArtEffect-Dateien =====================================================

; Bildverarbeitung entpacken

(makeassign "lhex_temp" folder)

  (working #wrk_guidecrunch)
  (set COMPERROR (run "ram:lhex -qfw=lhex_temp: x " archive-ArtEffect2))
  (if  ( <> COMPERROR 0)
     (message #decrunch_error)
  )


;==================================================================================

(complete 80)
; BGUI.Library in die Libs-Schublade kopieren!

(set sourcelib (tackon folder "DIVERSES/BGUI.library"))

(copylib
	(prompt #prp-copy-lib)
	(help #hlp-copy-lib)
	(source sourcelib)
	(dest "LIBS:")
	(confirm)
)

(complete 95)

; ------- STARTUP ÄNDERN

(set command1 (cat  "ASSIGN ArtEffect: " folder " DEFER"))

(set command1.txt
	(cat 
	 	"\n\n\nUm mit ArtEffect richtig arbeiten zu "
      "können muß eine Änderung an der User-Startup vorgenommen werden.\n\n"
	 	command1
	)
)

(startup "ArtEffect"
	(prompt command1.txt)
	(help #help-startup)
	(command command1)
)

(makeassign "ArtEffect")
;(makeassign "ArtEffect" (pathonly @icon))
(makeassign "ArtEffect" folder)

(delete "RAM:LHeX")

(complete 100)

; ------- FERTIG

(message (cat 
	"\nInstallation von ArtEffect beendet.\n\n"
   "Falls die Zeilen:\n" command1 "\nnicht in Ihre Startup-Sequence bzw. "
   "User-Startup eingefügt wurde, dann holen Sie dies bitte nach.\n\n"
   "\n\nWir wünschen ihnen viel Erfolg mit ArtEffect!")
)