; A simple installation-script for the Recall-package

(set #programmer		" 1993 Ketil Hunn")
(set #version				"V2.0")

(set #PROGRAM				"Recall")
(set #PREFS					(cat #PROGRAM " Preferences"))
(set #CONV					(cat #PROGRAM "Converter"))

(set #Mainprog			(cat "/" #PROGRAM))
(set #Prefsprog			(cat "/Prefs/" #PROGRAM))
(set #Project				(cat "/Prefs/Env-Archive/" #PROGRAM ".prefs"))
(set #Convprog			(cat "/Tools/" #CONV)) 
(set #recguide			(cat "/Docs/" #PROGRAM ".guide"))
(set #recascii			(cat "/Docs/" #PROGRAM ".ASCII"))
(set #convguide			(cat "/Docs/" #CONV ".guide"))
(set #convascii			(cat "/Docs/" #CONV ".ASCII"))
(set #Sourcedir			"/Source")
(set #Library				"/Libs/ReqTools.library")
(set @default-dest	"SYS:")
(set guidedest			"HELP:English/")
(set docdest				"DOCS:")

(set mainsize		 		(getsize #Mainprog))
(set prefssize	 		(getsize #Prefsprog))
(set convsize		 		(getsize #Convprog))
(set libssize		 		(getsize #Library))
(set projectsize		(getsize #Project))
(set recguidesize	 	(getsize #recguide))
(set recasciisize	 	(getsize #recascii))
(set convguidesize	(getsize #convguide))
(set convasciisize	(getsize #convascii))
(set sourcesize			127529)

(set done (+ mainsize prefssize convsize libssize projectsize recguidesize recasciisize convguidesize convasciisize sourcesize))

(complete 0)

(set progs
	(askoptions
		(help			@askoptions-help)
		(prompt			"Select parts of the package to install:")
			(choices	(cat #PROGRAM "             - Main program")
								(cat #PREFS 	" - Make your own projects")
								(cat #PROGRAM ".prefs       - Example project")
								(cat #PROGRAM ".guide       - Documentation in guideformat")
								(cat #PROGRAM ".ASCII       - Documentation in ASCIIformat")
								(cat "Converter          - Convert projects")
								(cat "Converter.guide    - Documentation in guideformat")
								(cat "Converter.ASCII    - Documentation in ASCIIformat")
								"C-Source           - All source-codes"
								"ReqTools.library   - A shared runtime.library"
				(default	1023)
	  	)
	)
)

; ****** RECALL *****
(if (IN progs 0)
	(
		(copylib(source	#Mainprog)
						(dest		"SYS:WBStartup/")
						(prompt (cat "About to copy " #PROGRAM))
						(help		@copylib-help)
						(confirm)
						(infos)
		)
		(tooltype (dest (tackon "SYS:Prefs" #PROGRAM))
							(noposition)
		)
	)
)
(complete (/ (* (set sofar (+ sofar mainsize)) 100) done))

; ****** RECALL PREFERENCES *****
(if (IN progs 1)
	(
		(copylib(source	#Prefsprog)
						(dest		"SYS:Prefs/")
						(prompt (cat "About to copy " #PREFS))
						(help		@copylib-help)
						(confirm)
						(infos)
		)
		(tooltype (dest (tackon "SYS:Prefs" #PROGRAM))
							(noposition)
		)
	)
)
(complete (/ (* (set sofar (+ sofar prefssize)) 100) done))

; ****** RECALL.PREFS *****
(if (IN progs 2)
	(
		(if (askbool(prompt "About to copy " #PROGRAM ".prefs\n\n"
												"Destination Drawer to Copy to:\n"
												"ENVARC:\n\n"
												"Any old project will be renamed as\n"
												"\"" #PROGRAM "_OLD_.prefs\"")
												(help "The example project contains some hints "
															"about the usage of " #PROGRAM " and may be useful "
															"inexperienced users. Press 'Yes' to install "
															"the project.\n\n"
															"Experienced user should continue by pressing "
															"'No'."
												)
				)
			(
				(if (exists (cat "ENVARC:" #PROGRAM ".prefs"))
					(
						(rename	(tackon "ENVARC:" (cat #PROGRAM ".prefs"))
										(tackon "ENVARC:" (cat #PROGRAM "_OLD_.prefs"))
						)
						(set renamed 1)
					)
				)
				(copyfiles	(source	#Project)
										(dest		"ENVARC:")
				)
			)
		)
	)
)
(complete (/ (* (set sofar (+ sofar projectsize)) 100) done))

; ****** RECALL.GUIDE *****
(if (IN progs 3)
	(
		(set guidedest
			(askdir
				(prompt		"Select disk or drawer where the Recall Amigaguide-document will be installed:")
				(help			@askdir-help)
				(default	"HELP:english/")
			)
		)
		(copyfiles(source	#recguide)
							(dest		guidedest)
							(infos)
		)
		(complete (/ (* (set sofar (+ sofar recguidesize)) 100) done))
	)
)

; ****** RECALL.ASCII *****
(if (IN progs 4)
	(
		(set docdest
			(askdir
				(prompt		"Select disk or drawer where the Recall ASCII-document will be installed:")
				(help			@askdir-help)
				(default	"Docs:")
			)
		)
		(copyfiles(source	#recascii)
							(dest		docdest)
							(infos)
		)
		(complete (/ (* (set sofar (+ sofar recasciisize)) 100) done))
	)
)

; ****** CONVERTER *****
(if (IN progs 5)
	(
		(copylib(source	#Convprog)
						(dest		"SYS:Tools/")
						(prompt (cat "About to copy " #CONV))
						(help		@copylib-help)
						(confirm)
						(infos)
		)
		(tooltype (dest (tackon "SYS:Tools" #CONV))
							(noposition)
		)
	)
)
(complete (/ (* (set sofar (+ sofar convsize)) 100) done))

; ****** CONVERTER.GUIDE *****
(if (IN progs 6)
	(
		(set guidedest
			(askdir
				(prompt		"Select disk or drawer where the Converter Amigaguide-document will be installed:")
				(help			@askdir-help)
				(default	guidedest)
			)
		)
		(copyfiles(source	#convguide)
							(dest		guidedest)
							(infos)
		)
		(complete (/ (* (set sofar (+ sofar convguidesize)) 100) done))
	)
)

; ****** CONVERTER.ASCII *****
(if (IN progs 7)
	(
		(set docdest
			(askdir
				(prompt		"Select disk or drawer where the Converter ASCII-document will be installed:")
				(help			@askdir-help)
				(default	docdest)
			)
		)
		(copyfiles(source	#convascii)
							(dest		docdest)
							(infos)
		)
		(complete (/ (* (set sofar (+ sofar convasciisize)) 100) done))
	)
)

; ****** SOURCES *****
(if (IN progs 8)
	(
		(set sourcedest
			(askdir
				(prompt		"In which disk or drawer should drawer '" #PROGRAM "Source' "
									"be created where all sources will be copied?")
				(help			@askdir-help)
				(default	"SC:source")
			)
		)
		(copyfiles(source	#Sourcedir)
							(dest		(tackon sourcedest (cat #PROGRAM "Source")))
							(all)
							(infos)
		)
	)
)

; ****** REQTOOLS.LIBRARY *****
(if (IN progs 9)
	(
		(copylib(source	"/Libs/ReqTools.library")
						(dest		"Libs:")
						(prompt (cat "About to copy ReqTools.library" ))
						(help		@copylib-help)
						(confirm)
		)
	)
)
(complete (/ (* (set sofar (+ sofar libssize)) 100) done))

(complete 100)
