; $VER: MaxonPLP-Demo Install Version 1.00 (05.08.93)
; Script zum Installieren der MaxonPLP Demoversion auf Festplatte und Diskette
; 

(set #NOROOM (cat "Nicht genügend Speicherplatz, um... zu installieren."))
(set #ERRORRAM (cat "Kann die notwendigen Dateien nicht in die Ram disk kopieren."))

(set #VERZHELP (cat "Wählen Sie erst die Partition Ihrer Festplatte aus, auf der\nSie gerne MaxonC++ installieren würden. Dann drücken Sie auf\nPROCEED und das Programm beginnt mit der Arbeit.\n\n"))
(set #COPYRAM	(cat "Einige Installationsdateien werden in die RAM-Disk kopiert ..."))

(set #DISK1 	(cat "dekomprimiere Programmdateien\n"))
(set #DISK2		(cat "dekomprimiere Treiberdateien\n"))

(set @DISK1SIZE	402000)
(set @DISK2SIZE	357000)
(set @HDSIZE	15000)
(set @RLIBSIZE 90000)

(Procedure Inst_NormFiles
;	(if (< (getdiskspace @Dest) @Size)
;		(abort #NOROOM))

	(set @anzeige (cat "Kopiere "@FName" aus "@SOURCE" \nnach "@Dest))
	(copyfiles (prompt @anzeige)(help @copyfiles-help)(source @Source)(choices @FName)(files)(infos)(dest @Dest)(confirm))
)

(Procedure Inst_PatternFiles
;	(if (< (getdiskspace @Dest) @Size)
;		(abort #NOROOM))

	(set @anzeige (cat "Kopiere "@FName" aus "@SOURCE" \nnach "@Dest))
	(copyfiles (prompt @anzeige)(help @copyfiles-help)(source @Source)(pattern @Pattern)(infos)(dest @Dest)(confirm))
)

(Procedure Inst_LhaFiles
	;(set @In_File (tackon @Source @FName.lha))
	(set @TMP (tackon "RAM:" @FName.lha))
	(set @Dest_File (tackon @default-dest @Dest))
	(if                                      	; Verzeichnis erzeugen
		(= (exists @Dest_File) 0)
		(makedir (@Dest_File)(infos))
	)

	(if (< (getdiskspace @Dest_File) @Size)
		(abort #NOROOM))

	(copyfiles (prompt "")(help "")(source @Source)(choices @FName.lha)(dest "RAM:"))
	(working @Working @Dest)
	(run ("RAM:Lhx -E -N x %s \"%s/\"" @TMP @Dest_File))
	(delete @TMP)
)

; ------- MaxonPLP-Installation vorbereiten

(complete 0)

(copyfiles											; Entpacker kopieren
	(prompt #COPYRAM)
	(help @copyfiles-help)
	(source "C1")
	(dest "RAM:")
   (choices "Lhx")
)

(complete 5)

(if
 (askbool
  (prompt "Auf was für einen Datenträger wollen Sie MaxonPLP installieren ?\n")
  (help "Von 'MaxonPLP-Install' können Sie MaxonPLP nicht starten.\n"
        "Deshalb müssen Sie entweder MaxonPLP auf Disketten oder auf Ihre Festplatte installieren\n")
  (default 0)
  (choices "Festplatte" "Disketten")
 )

;----- Installation auf Festplatte -----
 (
   (set @default-dest
    (askdir
     (prompt "Auf welches Laufwerk wollen Sie MaxonPLP installieren ?\nDas Installationsprogramm erzeugt dann dort automatisch"
      " ein 'MaxonPLP'-Verzeichnis.\n")
     (help
      "Hier müssen Sie nun angeben, wo Sie MaxonPLP auf Ihrer Diskette "
      "installiert haben wollen.\n\nDas Installationsprogramm erzeugt dann dort "
      "ein 'MaxonPLP'-Verzeichnis.\n"
     )
     (default "Work:")
    )
   )

   (if (exists (tackon @default-dest "MaxonPLP"))
    (
     (if
      (askbool
       (prompt (cat "\n\nEs existiert schon ein MaxonPLP-Verzeichnis !\n\n"
                   "Soll es umbenannt oder gelöscht werden ?"))
       (help "Falls Sie noch alte Daten haben, welche Sie weiterverwenden wollen, "
            "sollten Sie das Verzeichnis nicht löschen!")
       (default 0)
       (choices "Umbenennen" "Löschen")
      )
      (
       (rename (tackon @default-dest "MaxonPLP") (tackon @default-dest "MaxonPLP_ALT"))
       (if (exists (tackon @default-dest "MaxonPLP.info"))
        (
         (rename (tackon @default-dest "MaxonPLP.info") (tackon @default-dest "MaxonPLP_ALT.info"))
        )
       )
      )
      (
       (run (cat "c1/delete " (tackon @default-dest "MaxonPLP") " all"))
       (if (exists (tackon @default-dest "MaxonPLP.info"))
        (
         (run (cat "c1/delete " (tackon @default-dest "MaxonPLP.info")))
        )
       )
      )
     )
    )
   )

   (makedir (tackon @default-dest "MaxonPLP"))

	 (complete 25)

   (copyfiles
    (source "info.MaxonPLP")
    (dest @default-dest)
    (newname "MaxonPLP.info")
   )

   (set @default-dest (tackon @default-dest "MaxonPLP"))


	; ------- Disk1 KOPIEREN
		
	(	(set @Working #DISK1)
		(set @Dest (""))
		(set @Source (""))
		(set @FName.lha ("Disk1.lha"))
		(set @Size @DISK1SIZE)
		(Inst_LhaFiles)
	)

	(complete 40)

	; ------- Disk2 KOPIEREN
		
	(	(set @Working #DISK2)
		(set @Dest (""))
		(set @Source (""))
		(set @FName.lha ("Disk2.lha"))
		(set @Size @DISK2SIZE)
		(Inst_LhaFiles)
	)

  (complete 70)

	; ------- Treiber KOPIEREN
		
	(	(set @Working #DISK2)
		(set @Dest (""))
		(set @Source (""))
		(set @FName.lha ("HD.lha"))
		(set @Size @HDSIZE)
		(Inst_LhaFiles)
	)
  (complete 90)

	(copylib											; RCT-LIB kopieren
		(prompt "Die RCT-LIBRARY wird kopiert ...")
		(help
			"Die RCT-Library wird von MaxonPLP benötigt."
	      "Wenn Sie diese Bibliothek schon auf Ihrer Festplatte "
	      "installiert haben, dann ist hier eine neuere Version.\n\n"
			@copyfiles-help
		)
		(source "LIBS/rct.library")
		(dest "Libs:")
		(confirm)
	)

	(set command1 (cat "assign MaxonPLP: " @default-dest))
	
	(startup @app-name
	 (prompt 
	  "\n\nJetzt müssen noch die Zeilen:\n\n" command1 "\n\n in Ihre Startup-Sequence "
	  "bzw. User-Startup eingefügt werden."
	 )
	 (help
	  "Diese Eintragungen in Ihrer Startup-Sequence bzw. "
	  "User-Startup werden für einen reibungslosen Betrieb von MaxonPLP benötigt."
	 )
	 (command command1)
	)

	
	(message (cat 
	 "Installation von MaxonPLP beendet.\n"
	 "Falls die Zeilen:\n\n" command1 "\n\nnicht in Ihre Startup-Sequence bzw. "
	 "User-Startup eingefügt wurde, dann holen Sie dies bitte nach.\n\nViel Erfolg!")
	)
 )
;----- Installation auf Disketten -----
 
 (

  (set @default-dest "")

  (askdisk
   (prompt "\n\nBitte legen Sie 'MaxonPLP-Demo_Install' in ein beliebiges Laufwerk\n")
   (help "Es wird 'MaxonPLP-Demo_Install' benötigt zur weiteren Installation.")
   (dest "MaxonPLP-Demo_Install")
  )

  (copyfiles
   (source "c1")
   (dest "ram:PLP_COM")
   (choices 
    "install"
    "delete"
   )
  )

	(complete 10)

  (copyfiles
   (source "")
   (dest "ram:PLP_TMP")
   (choices 
    "Disk1.lha"
    "System.lha"
    "c"
    "devs"
    "l"
    "libs"
    "prefs"
    "t"
    "disk.info"
   )
  )

	(complete 20)

  (askdisk
   (prompt "\n\nBitte legen Sie die leere 'MaxonPLP_Disk1' in ein beliebiges Laufwerk\n")
   (help "Es wird 'MaxonPLP_Disk1' benötigt zur weiteren Installation.")
   (dest "MaxonPLP_Disk1")
  )

  (copyfiles
   (source "ram:PLP_TMP")
   (dest "MaxonPLP_Disk1:")
   (choices 
    "c"
    "devs"
    "l"
    "libs"
    "prefs"
    "t"
    "disk.info"
   )
  )

	(complete 30)

  (working "\n\nEntpacke Archive nach 'MaxonPLP_Disk1'\n")

	(run ("RAM:Lhx -E -N x ram:PLP_TMP/System.lha #? MaxonPLP_Disk1:"))
	(complete 40)

	(run ("RAM:Lhx -E -N x ram:PLP_TMP/Disk1.lha #? MaxonPLP_Disk1:"))
	(complete 50)

  (run "ram:PLP_COM/delete ram:PLP_TMP all")

  (run "ram:PLP_COM/install df0:")
  (run "ram:PLP_COM/install df1:")
  (run "ram:PLP_COM/install df2:")
  (run "ram:PLP_COM/install df3:")

	(complete 60)

;----- MaxonPLP_Disk2 erzeugen
  

  (askdisk
   (prompt "\n\nBitte legen Sie 'MaxonPLP-Demo_Install' in ein beliebiges Laufwerk\n")
   (help "Es wird 'MaxonPLP-Demo_Install' benötigt zur weiteren Installation.")
   (dest "MaxonPLP-Demo_Install")
  )

  (copyfiles
   (source "")
   (dest "ram:PLP_TMP")
   (choices 
    "Disk2.lha"
    "disk.info"
   )
  )

	(complete 70)

  (askdisk
   (prompt "\n\nBitte legen Sie 'MaxonPLP_Disk2' in ein beliebiges Laufwerk\n")
   (help "Es wird 'MaxonPLP_Disk2' benötigt zur weiteren Installation.")
   (dest "MaxonPLP_Disk2")
  )

  (copyfiles
   (source "ram:PLP_TMP")
   (dest "MaxonPLP_Disk2:")
   (choices 
    "disk.info"
   )
  )

	(complete 80)

  (working "\n\nEntpacke Archive nach 'MaxonPLP_Disk2'\n")

	(run ("RAM:Lhx -E -N x ram:PLP_TMP/Disk2.lha #? MaxonPLP_Disk2:"))
  (complete 90)
  (run "ram:PLP_COM/delete ram:PLP_TMP all")
  (run "ram:PLP_COM/delete ram:PLP_COM all")
 )
)

(delete "RAM:LHX")									; --- auch den letzten Rest noch!

(makeassign "MaxonPLP" @default-dest (safe))	; ----- Damit´s gleich weitergeht

(complete 100)

(message (cat 
 "Installation von MaxonPLP beendet.")
)

; ------- FERTIG
