; 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	"SYS:WBStartup/" #PROGRAM))
(set #Prefsprog			(cat	"SYS:Prefs/" #PROGRAM))
(set #Project				(cat	"ENVARC:" #PROGRAM ".prefs"))
(set #Convprog			(cat	"SYS:Tools/" #CONV)) 
(set #recguide			(cat	#PROGRAM ".guide"))
(set #convguide			(cat	#CONV ".guide"))
(set #recascii			(cat	#PROGRAM ".ASCII"))
(set #convascii			(cat	#CONV ".ASCII"))
(set #Sourcedir			"sc: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 guidesize	 	(getsize #recguide))
(set guidesize	 	(getsize #convguide))
(set asciisize	 	(getsize #recascii))
(set asciisize	 	(getsize #convascii))
(set sourcesize		127529)

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

(complete 0)

(message	"This script will remove any copy of components of the "
					#PROGRAM "-utility from your harddisk.\n\n"
					"Please press 'Proceed' to bring up the menu in which you "
					"select which parts of the " #PROGRAM "-package you will remove.\n\n"
					"Please take no notice of all occurences of the word 'Install' "
					"throughout this script.  That word cannot be changed since it "
					"resides inside the Commodore's Installer-utility.  (I guess they "
					"never thought that Installer could be of much use other than to "
					"installing programs :( )"
)

(set progs
	(askoptions
		(help			@askoptions-help)
		(prompt			"Select parts of the package to delete:")
			(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	0)
	  	)
	)
)

; ****** RECALL *****
(if (IN progs 0)
	(
		(delete (#Mainprog)
						(prompt (cat "About to delete " #Mainprog))
						(help		@delete-help)
						(confirm)
						(infos)
		)
	)
)
(complete (/ (* (set sofar (+ sofar mainsize)) 100) done))

; ****** RECALL PREFERENCES *****
(if (IN progs 1)
	(
		(delete (#Prefsprog)
						(prompt (cat "About to delete " #Prefsprog))
						(help		@delete-help)
						(confirm)
						(infos)
		)
	)
)
(complete (/ (* (set sofar (+ sofar prefssize)) 100) done))

; ****** RECALL.PREFS *****
(if (IN progs 2)
	(
		(delete (#Project)
						(prompt (cat "About to delete " #Project))
						(help		@delete-help)
						(confirm)
						(infos)
		)
	)
)
(complete (/ (* (set sofar (+ sofar projectsize)) 100) done))

; ****** RECALL.GUIDE *****
(if (IN progs 3)
	(
		(set guidedest
			(askdir
				(prompt		"Select disk or drawer where Recall Amigaguide-document resides:")
				(help			@askdir-help)
				(default	"HELP:english/")
			)
		)
		(delete (tackon guidedest #recguide)
						(prompt (cat "About to delete " guidedest #recguide))
						(help		@delete-help)
						(confirm)
						(infos)
		)
		(complete (/ (* (set sofar (+ sofar recguidesize)) 100) done))
	)
)

; ****** RECALL.ASCII *****
(if (IN progs 4)
	(
		(set docdest
			(askdir
				(prompt		"Select disk or drawer where Recall ASCII-document resides:")
				(help			@askdir-help)
				(default	"Docs:")
			)
		)
		(delete (tackon docdest #recascii)
						(prompt (cat "About to delete " docdest #recascii))
						(help		@delete-help)
						(confirm)
						(infos)
		)
		(complete (/ (* (set sofar (+ sofar recasciisize)) 100) done))
	)
)

; ****** CONVERTER *****
(if (IN progs 5)
	(
		(delete (#Convprog)
						(prompt (cat "About to delete " #Convprog))
						(help		@delete-help)
						(confirm)
						(infos)
		)
	)
)
(complete (/ (* (set sofar (+ sofar convsize)) 100) done))

; ****** CONVERTER.GUIDE *****
(if (IN progs 6)
	(
		(set guidedest
			(askdir
				(prompt		"Select disk or drawer where Converter Amigaguide-document resides:")
				(help			@askdir-help)
				(default	guidedest)
			)
		)
		(delete (tackon guidedest #convguide)
						(prompt (cat "About to delete " guidedest #convguide))
						(help		@delete-help)
						(confirm)
						(infos)
		)
		(complete (/ (* (set sofar (+ sofar convguidesize)) 100) done))
	)
)

; ****** CONVERTER.ASCII *****
(if (IN progs 7)
	(
		(set docdest
			(askdir
				(prompt		"Select disk or drawer where Converter ASCII-document resides:")
				(help			@askdir-help)
				(default	docdest)
			)
		)
		(delete (tackon docdest #convascii)
						(prompt (cat "About to delete " docdest #convascii))
						(help		@delete-help)
						(confirm)
						(infos)
		)
		(complete (/ (* (set sofar (+ sofar convasciisize)) 100) done))
	)
)

; ****** SOURCES *****
(if (IN progs 8)
	(
		(set sourcedest
			(askdir
				(prompt		"Select drawer where all Recall sources resides:\n"
									"WARNING!\n"
									"ALL files in the selected drawer will be deleted!")
				(help			@askdir-help)
				(default	"ram:")
			)
		)
		(run (cat "c:delete \"" sourcedest "\" all"))
		(complete (/ (* (set sofar (+ sofar sourcesize)) 100) done))
	)
)

; ****** REQTOOLS.LIBRARY *****
(if (IN progs 9)
	(
		(delete (#Library)
						(prompt (cat "About to delete " #Library))
						(help		@delete-help)
						(confirm)
						(infos)
		)
	)
)
(complete (/ (* (set sofar (+ sofar libssize)) 100) done))

(complete 100)

(message	#PROGRAM " is now removed from your " default-dest "-partition!")
