;
; Installer-Script for MicroDot
;
; $VER: MicroDot-Install 1.10 (17.09.97)
;

(set #about "\nWillkommen zu\n\nMicroDot 1.16\n=============\n\n 1993-97 Oliver Wagner\n<owagner@vapor.com>\nAll Rights Reserved\n\nhttp://www.vapor.com/microdot-1/" )

(set #install-hd-msg
(cat	"Wohin soll MicroDot installiert werden, oder wo befindet sich Ihre existierende Installation?\n"
		"ACHTUNG: Es wird KEIN eigenes Verzeichnis mehr angelegt. Wenn Sie MicroDot in ein eigenes Verzeichnis "
		"installieren wollen, men Sie es selbst mit 'Neue Schublade anlegen' erzeugen und angeben!"
))

(set #install-hd-help
(cat	"\nHier men Sie angeben, wo auf Ihrer "
		"Festplatte das MicroDot-Verzeichnis installiert werden "
		"soll.\n\n"
		"Das Installationsprogramm erzeugt dann in dem von Ihnen "
		"angegebenen Verzeichnis eine neue Schublade mit dem "
		"Namen \"MicroDot\".\n\n"
		"Sie sollten MicroDot nach Mglichkeit NICHT auf einer Partition "
		"installieren, die mit dem DirCache-FileSystem formatiert ist."
))

(set #copying-reqtools "Kopiere reqtools.library nach Libs:")
(set #copying-regtool "Kopiere Vapor-Registrierprogram")
(set #copying-aguide "Kopiere amigaguide.library nach Libs:")
(set #copying-setpatch "Fr den ordnungsgemen Betrieb von MicroDot wird SetPatch 40.16 (oder hher) bentigt.")

(set #want20
(cat	"Mchten Sie die spezielle MicroDot020-Version fr Rechner mit OS 3.x "
		"und einer 68020/030/040/060-CPU installiert haben? "

))
(set #want20-help
(cat	"Sie haben ein Amiga-System mit OS 3.0 oder grer "
		"und einem %s Prozessor.\n\n"
		"Mchten Sie die spezielle MicroDot020-Version fr solche "
		"Konfigurationen installiert haben?"
))

(set #cfgexist-msg
(cat	"Es existiert bereits eine Prekonfigurationsdatei fr "
		"ihr System, die beim ersten Start von MicroDot automatisch "
		"gelesen wird."
))

(set #cfgexist-help
(cat	"Es wurde eine Datei \"microdot.cfg\" gefunden, die "
		"die Parameter fr Ihr Pointsystem, wie den Usernamen "
		"oder die Telefonnummer der Box enthlt. Eine weitere "
		"Konfiguration des Points ist daher nicht unbedingt notwendig.\n\n"
		"Trotzdem sollten Sie auf jeden Fall die Einstellunge berprfen."
))

(set #update-msg
(cat 	"Mchten Sie Ihre bestehende MicroDot-Installation updaten "
		"oder komplett neu installieren? Auch bei einer Neuinstallation "
		"bleiben Ihre Daten vollstndig erhalten."
))

(set #update-help
(cat	"Sie haben in dem ausgewhlten Verzeichnis bereits MicroDot "
		"installiert. Hier knnen Sie nun entscheiden, ob diese "
		"Installation geupdatet werden soll (nur die Dateien "
		"MicroDot, MicroDot.guide und LiesMich.txt werden ersetzt) "
		"oder ob komplett neu installiert werden soll.\n"
		"In beiden Fllen bleiben Ihre Datenbestnde unangetastet."
))


;
; Procedures
;

(procedure checkv20
	(set v20-flag 0)
	(if (> (/ (getversion) 65536) 38)
		(if (exists "MDInstall/MicroDot020.pch" )
			(if (>= (database "cpu") 68020 )
				(set v20-flag
					(askbool
						(prompt #want20)
						(help (#want20-help (database "cpu" ) ) ) 
						(default 1)
					)
				)
			)
		)
	)
)

(procedure do_copy
	(complete 15)
	(copyfiles
		(source "MicroDot.guide")
		(newname "MicroDot.guide")
		(prompt "Kopiere MicroDot.guide...")
		(help @copyfiles-help)
		(confirm)
		(infos)
		(dest @default-dest)
	)
	(complete 25)
	(working "Erstelle MicroDot.DOK...")
	(run ("MDInstall/ag2txt MicroDot.guide \"%s\"" (tackon @default-dest "MicroDot.DOK" ) ) )
	(complete 37)
	(copyfiles
		(source "MDInstall/")
		(dest @default-dest)
		(choices "MicroDot.info" "MicroDot-Netcall.info" "MicroDot-Terminal.info" "MicroDot.DOK.info")
		(prompt "Kopiere Piktogramme...")
		(help @copyfiles-help)
		(confirm)
	)
	(complete 42)
	(if (exists "LiesMich.txt" )
		(copyfiles
			(source "LiesMich.txt" )
			(dest @default-dest)
			(optional nofail)
			(prompt "Kopiere LiesMich.txt..." )
			(help @copyfiles-help)
			(confirm)
			(infos)
		)
	)
	(complete 43)
	(copyfiles
		(source "MDInstall/Rexx/")
		(dest (tackon @default-dest "Rexx/"))
		(pattern "#?.md#?rexx")
		(optional nofail)
		(prompt "Kopiere Rexx-Makros..." )
		(help @copyfiles-help)
		(confirm)
		(infos)
	)
	(if (= 0 update_mode )
	(
		(complete 46)
		(if (exists "MicroDot.cfg" )
			(copyfiles
				(source "MicroDot.cfg")
				(dest @default-dest)
				(optional nofail)
				(prompt "Kopiere MicroDot.cfg...")
				(help @copyfiles-help)
				(confirm)
			)
		)
		(complete 47)
		(copyfiles
			(source "MDInstall/")
			(dest @default-dest)
			(pattern "md_#?.(pub#?|priv#?)")
			(optional nofail)
			(prompt "Kopiere Beispiel-Texte...")
			(help @copyfiles-help)
			(confirm)
		)
	))

	(complete 49)
	(if (exists "Point.txt" )
		(copyfiles
			(source "Point.txt" )
			(dest @default-dest)
			(optional nofail)
			(prompt "Kopiere Point.txt..." )
			(help @copyfiles-help)
			(confirm)
			(infos)
		)
	)

	(complete 50)
	(checkv20)
	(complete 51)
	(if (<> v20-flag 0 )
	(
		(working "Erstelle MicroDot020-Hauptprogramm...")
		(run ("MDInstall/SPatch \"-o%s\" -pMDInstall/MicroDot020.pch MDInstall/MicroDot" (tackon @default-dest "MicroDot") ) )
	)
	(
		(copyfiles
			(source "MDInstall/MicroDot")
			(dest @default-dest)
			(prompt "Kopiere MicroDot-Hauptprogramm...")
			(help @copyfiles-help)
			(confirm)
		)
	))
	(complete 75)
)

(procedure do_hd 
	(set default-dest
		(askdir
			(prompt #install-hd-msg)
			(help #install-hd-help)
			(default @default-dest)
		)
	)
	(set @default-dest default-dest)
;	(set @default-dest
;		(tackon default-dest "MicroDot")
;	)
	(if (exists (tackon @default-dest "MicroDot.prefs" ) )
		(if (askbool
				(prompt #update-msg)
				(help #update-help)
				(default 1)
				(choices "Update" "Neuinstallation" )
			)
			(set update_mode 1)
		)
	)

	(makedir @default-dest
		(infos)
	)
	(makedir (tackon @default-dest "Rexx" ) )
	(do_copy)

)

(procedure copy-regtool
	(complete 80)
	(copyfiles
		(prompt #copying-regtool)
		(help @copyfiles-help)
		(source "Register-MicroDot")
		(dest @default-dest)
		(all)
	)
)

(procedure copy-reqtools
	(complete 93)
	(if (exists "MDInstall/libs/reqtools.library" )
		(copylib
			(prompt #copying-reqtools)
			(help @copylib-help)
			(source "MDInstall/libs/reqtools.library")
			(dest "Libs:")
			(confirm)
		)
	)
)

(procedure copy-setpatch
	(complete 95)
	(copylib
		(prompt #copying-setpatch)
		(help @copylib-help)
		(source "MDInstall/SetPatch")
		(dest "C:")
		(confirm)
	)
)

(procedure copy-aguide
	(complete 97)
	(if (exists "MDInstall/libs/amigaguide.library" )
		(copylib
			(prompt #copying-aguide)
			(help @copylib-help)
			(source "MDInstall/libs/amigaguide.library")
			(dest "Libs:")
			(confirm)
		)
	)
	(complete 99)
	(if (exists "SYS:Utilities/MultiView" ) 
		(
			(tooltype (
				(dest (tackon @default-dest "MicroDot.guide") )
				(setdefaulttool "SYS:Utilities/MultiView" )
			))
		)

		(if (exists "MDInstall/AmigaGuide" )
			(
				(tooltype (
					(dest (tackon @default-dest "MicroDot.guide") )
					(setdefaulttool "AmigaGuide" )
				))
				(copyfiles
					(source "MDInstall/AmigaGuide")
					(dest @default-dest)
				)
			)
		)
	)
)

(procedure do_config
	(complete 80)
	(set configname (tackon @default-dest "microdot.cfg" ) )
	(if (exists configname)
		(
			(set #cfgexist-realmsg #cfgexist-msg)
			(if (exists (tackon @default-dest "microdot.autosortin" ) )
				(set #cfgexist-realmsg
					(cat #cfgexist-msg  "\n\nEs existiert ein konvertierter Netcallpuffer "
									   	( "mit %ld Bytes Lnge, der beim ersten Start von MicroDot " (getsize (tackon @default-dest "microdot.autosortin" ) ) )
									   	"automatisch einsortiert wird."
					)
				)
			)
			(message #cfgexist-realmsg)
		)
	)
	(complete 90)
	(tooltype (
		(dest (tackon @default-dest "MicroDot") )
		(noposition)
		(setstack 4000)
		(swapcolors)
	))
	(tooltype (
		(dest (tackon @default-dest "MicroDot-Netcall") )
		(noposition)
		(setstack 4000)
		(swapcolors)
	))
	(tooltype (
		(dest (tackon @default-dest "MicroDot-Terminal") )
		(noposition)
		(setstack 4000)
		(swapcolors)
	))
	(tooltype (
		(dest (tackon @default-dest "MicroDot.guide") )
		(noposition)
		(setstack 10000)
		(swapcolors)
	))
)
;
;
; GO!
;
;
(message #about)
(welcome) 
(complete 1)
(do_hd)

(do_config)

; Reqtools installieren
(copy-regtool)
(copy-reqtools)
(copy-setpatch)
(copy-aguide)
(complete 100)
