; A simple installation-script for the Recall-package

;****************************************************************************
; Global variables.  DO NOT TOUCH!

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

(set RECALL					"Recall")
(set RECALLPREFS		(cat RECALL			" Preferences"))
(set RECALL.PREFS		(cat RECALL			".prefs"))
(set RECALLGUIDE		(cat RECALL			".guide"))
(set RECALLASCII		(cat RECALL 		".ASCII"))
(set CONVERTER			"ReConvert")
(set CONVERTERGUIDE	(cat CONVERTER	".guide"))
(set CONVERTERASCII	(cat CONVERTER	".ASCII"))
(set LIBRARY				"ReqTools.library")

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

(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			171438)
(set done (+ mainsize prefssize convsize libssize projectsize recguidesize recasciisize convguidesize convasciisize sourcesize))

(complete 0)

;****************************************************************************
; English strings

(if(= @language "english")
	(
		(set partstxt	(cat 	"Select parts of " RECALL " " #VERSION " to install:\n"
												"Press HELP for a short description of the files"))
		(set CSOURCE		"C-Source")
		(set parthelp (cat "Description of files:\n\n"
												RECALL ":\n"
												"Main program\n\n"
												RECALLPREFS		":\n"
												"Make your own projects\n\n"
												RECALL ".prefs:\n"
												"An example project\n\n"
												"Guide-files:\n"
												"Documentation describing the programs in this "
												"package.  The format is AmigaGuide.  These docs "
												"may be accessed directly from their programs.\n\n"
												"ASCII-files:\n"
												"Documentation discribing the programs in this "
												"package.  They contain the same information as "
												"the Guide-files, but without the guide-codes. "
												"They are to be used if you want to print the "
												"documentation.\n\n"
												CONVERTER		":\n"
												"Program to convert projects between different "
												"formats\n\n"
												CSOURCE ":\n"
												"All sources ready to be compiled!\n\n"
												"ReqTools.library:\n"
												"Needs no further explanation.  The program can run "
												"without this library, but if you do not install it, "
												"you will loose a couple of features.\n\n"
									))
		(set langtxt	(cat	"Select which additional languages to install:\n"
												"(english is built-in - no need to install it)"))
		(set abouttotxt		"About to copy")
		(set destdrawtxt	"Destination Drawer to Copy to:")
		(set renametxt		"Any old project will be renamed as")
		(set prefshelp		(cat	"The example project contains some hints "
														"about the usage of " RECALL " and may be useful "
														"inexperienced users. Press 'Yes' to install "
														"the project.\n\n"
														"Experienced user should continue by pressing "
														"'No'.")
										)
		(set #WhereRecallGuide  (cat "Select disk or drawer where the " RECALL " Amigaguide-document will be installed:"))
		(set #WhereRecallASCII  (cat "Select disk or drawer where the " RECALL " ASCII-document will be installed:"))
		(set #WhereConvertGuide (cat "Select disk or drawer where the " CONVERTER " Amigaguide-document will be installed:"))
		(set #WhereConvertASCII	(cat "Select disk or drawer where the " CONVERTER " ASCII-document will be installed:"))
		(set #WhereSource	(cat	"In which disk or drawer should drawer '" RECALL "Source' "
														 "be created where all sources will be copied?")
											)
	)
)

;****************************************************************************
; German strings
(if(= @language "deutsch")
   (
		(set default_lang 2)
		(set partstxt   (cat    "Whlen sie die zu installierenden Teile von\n " RECALL " " #VERSION " aus: "
         "Drcken sie HELP fr eine\nkurze Beschreibung der Dateien"))
      (set CSOURCE            "C-Source")
      (set parthelp (cat "Beschreibung der Dateien:\n\n"
         RECALL ":\n"
         "Hauptprogramm\n\n"
         RECALLPREFS             ":\n"
         "Um eigene Projekte zu erstellen\n\n"
         RECALL ".prefs:\n"
         "Ein Beispiel-Projekt\n\n"
         "Guide-Dateien:\n"
         "Dokumentation, die die Programme in diesem Packet "
         "beschreibt. Das Format ist 'AmigaGuide'. Auf diese Dokumente "
         "kann direkt von den Programmen aus zugegriffen werden.\n\n"
         "ASCII-Dateien:\n"
         "Dokumentation, die die Programme in diesem Packet "
         "beschreibt. Der Inhalt ist der Gleiche wie auch in den "
         "Guide-Dateien, aber ohne Guide-Codes. "
         "Sie sind dazu da, um ausgedruckt zu werden.\n\n"
         CONVERTER               ":\n"
         "Programm zum konvertieren von Projekten verschiedener Formate\n\n"
         CSOURCE ":\n"
         "Alle Sourcen sind 'compilierfertig'!\n\n"
         "ReqTools.library:\n"
         "Bentigt keiner weiteren Erklrung. Das Programm luft "
         "ohne diese Library, aber wenn sie diese nicht installieren, "
         "werden sie auf einige Besonderheiten verzichten mssen.\n\n"
      ))
      (set langtxt    (cat    "Whlen sie eine zustzliche zu installierende Sprache aus:\n"
         "(Englisch ist eingebaut - braucht also nicht extra installiert zu werden)"))
      (set abouttotxt         "Kopieren von")
      (set destdrawtxt        "Verzeichnis, wohin kopiert werden soll:")
      (set renametxt          "Jedes alte Projekt wird umbenannt zu")
      (set prefshelp          (cat    "Das Beispielprojekt enthlt einige Tips"
         "ber die Benutzung von " RECALL " und knnte ntzlich fr"
         "unerfahrene Benutzer sein. Drcken sie 'Ja', um das Projekt"
         "zu installieren.\n\n"
         "Erfahrene Benutzer sollten diesen Teil berspringen und"
         "'Nein' drcken.")
         )
      (set #WhereRecallGuide  (cat "Whlen sie ein Verzeichnis aus, in das das " RECALL "-Amigaguide-Dokument installiert werden soll:"))
      (set #WhereRecallASCII  (cat "Whlen sie ein Verzeichnis aus, in das das " RECALL "-ASCII-Dokument installiert werden soll:"))
      (set #WhereConvertGuide (cat "Whlen sie ein Verzeichnis aus, in das das " CONVERTER "-Amigaguide-Dokument installiert werden soll:"))
      (set #WhereConvertASCII (cat "Whlen sie ein Verzeichnis aus, in das das " CONVERTER "-ASCII-Dokument installiert werden soll:"))
      (set #WhereSource       (cat    "Soll das Verzeichnis '" RECALL "Source' "
          "dorthin kopiert werden, wohin auch alle anderen Sourcen kopiert werden?")
      )
   )
)

;****************************************************************************
; Norwegian strings

(if(= @language "norsk")
	(
		(set default_lang 1)
		(set partstxt (cat 	"Velg de deler av " RECALL " " #VERSION " som skal "
												"installeres:\n"
												"Trykk HJELP for nrmere beskrivelse av filene."))
		(set CSOURCE				"C-Kildekode")
		(set parthelp (cat "Beskrivelse av filene:\n\n"
												RECALL ":\n"
												"Hovedprogrammet.\n\n"
												RECALLPREFS		":\n"
												"Med dette programmet setter du opp hendelsene "
												"du vil bli pminnet om.\n\n"
												RECALL ".prefs:\n"
												"Et eksempel p prosjekt.\n\n"
												"Guide-filer:\n"
												"Dokumentasjon p programmene i denne pakke. "
												"Formatet er AmigaGuide.  Disse filene kan styres "
												"direkte fra programmene.\n\n"
												"ASCII-filer:\n"
												"Dokumentasjon p programmene i denne pakken. "
												"De inneholder samme informasjon som Guide-filene, "
												"men inneholder ingen koder og ment  brukes hvis"
												"dokumentasjonen skal skrives ut.\n\n"
												CONVERTER		":\n"
												"Program for  konvertere prosjekter mellom "
												"forskjellige format\n\n"
												CSOURCE ":\n"
												"Hele kildekoden, klar til  kompilere.\n\n"
												"ReqTools.library:\n"
												"Trenger vel ingen forklaring.  Programmet kan kjres "
												"uten dette biblioteket, men hvis du ikke installerer "
												"det, vil du miste et par funksjoner.\n\n"
									))
		(set langtxt	(cat	"Velg hvilke sprk som skal installeres:\n"
												"(engelsk er innebygd - trengs ikke  installeres)"))

		(set abouttotxt		"Skal til  kopiere")
		(set destdrawtxt	"Destinasjons skuff  kopiere til:")
		(set renametxt		"Eksisterende prosjekt vil f navnet endret til")
		(set prefshelp		(cat	"Prosjekteksempelet inneholder tips og triks "
														"om bruken av " RECALL " og kan vre nyttig "
														"for nye brukere.  Trykk 'Ja' for  installere "
														"eksempelet.\n\n"
														"Brukere som allerede er kjent med programmet "
														"kan trykke 'Nei'.")
											)
		(set #WhereRecallGuide  (cat "Velg disk eller skuff hvor " RECALL " Amigaguide-dokumentet vil bli installert:"))
		(set #WhereRecallASCII  (cat "Velg disk eller skuff hvor " RECALL "  ASCII-dokumentet vil bli installert:"))
		(set #WhereConvertGuide (cat "Velg disk eller skuff hvor " CONVERTER " Amigaguide-dokumentet vil bli installert:"))
		(set #WhereConvertASCII	(cat "Velg disk eller skuff hvor " CONVERTER " ASCII-dokumentet vil bli installert:"))
		(set #WhereSource	(cat	"I hvilken skuff skal en skuff med navn '" RECALL "Source' "
														"lages og hvor hele kildekoden skal kopieres til?")
											)
	)
)

;****************************************************************************
; Installation script.  DO NOT TOUCH!

(set progs
	(askoptions
		(help			(cat parthelp @askoptions-help))
		(prompt		partstxt)
		(choices	RECALL
							RECALLPREFS
							RECALL.PREFS
							RECALLGUIDE
							RECALLASCII
							CONVERTER
							CONVERTERGUIDE
							CONVERTERASCII
							CSOURCE
							LIBRARY
		(default	1023)
	  )
	)
)

(set languages
	(askoptions
		(help			@askoptions-help)
		(prompt		langtxt)
		(choices	"Norsk"
							"Deutsch"
;							"Espaol"
;							"Franais"
;							"Svenska"
			(default default_lang)
	  )
	)
)

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

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

; ****** RECALL.PREFS *****
(if (IN progs 2)
	(
		(if (askbool(prompt (cat	abouttotxt " " RECALL ".prefs\n\n"
															destdrawtxt "\n"
															"ENVARC:\n\n"
															renametxt "\n"
															"\"" RECALL "_OLD_.prefs\""))
												(help prefshelp)
				)
			(
				(if (exists (cat "ENVARC:" RECALL ".prefs"))
					(
						(rename	(tackon "ENVARC:" (cat RECALL ".prefs"))
										(tackon "ENVARC:" (cat RECALL "_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		#WhereRecallGuide)
				(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		#WhereRecallASCII)
				(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 abouttotxt " " CONVERTER))
						(help		@copylib-help)
						(confirm)
						(infos)
		)
		(tooltype (dest (tackon "SYS:Tools" CONVERTER))
							(noposition)
		)
	)
)
(complete (/ (* (set sofar (+ sofar convsize)) 100) done))

; ****** CONVERTER.GUIDE *****
(if (IN progs 6)
	(
		(set guidedest
			(askdir
				(prompt		#WhereConvertGuide)
				(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		#WhereConvertASCII)
				(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		#WhereSource)
				(help			@askdir-help)
				(default	"SC:source")
			)
		)
		(copyfiles(source	#Sourcedir)
							(dest		(tackon sourcedest (cat RECALL "Source")))
							(all)
							(infos)
		)
	)
)

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

; ****** LANGUAGE: Norsk *****
(if (IN languages 0)
	(
		(copyfiles(source	(tackon #Locale "Norsk"))
							(dest		(tackon #Localedest (tackon "Norsk" RECALL)))
							(all)
		)
	)
)

; ****** LANGUAGE: Deutsch *****
(if (IN languages 1)
	(
		(copyfiles(source	(tackon #Locale "Deutsch"))
							(dest		(tackon #Localedest (tackon "Deutsch" RECALL)))
							(all)
		)
	)
)

; ****** LANGUAGE: Espaa *****
;(if (IN languages 2)
;	(
;		(copyfiles(source	(tackon #Locale "Espaol"))
;							(dest		(tackon #Localedest (tackon "Espaol" RECALL)))
;							(all)
;		)
;	)
;)
;
; ****** LANGUAGE: Franais *****
;(if (IN languages 3)
;	(
;		(copyfiles(source	(tackon #Locale "Franais"))
;							(dest		(tackon #Localedest (tackon "Franais" RECALL)))
;							(all)
;		)
;	)
;)
;
;; ****** LANGUAGE: Svenska *****
;(if (IN languages 4)
;	(
;		(copyfiles(source	(tackon #Locale "Svenska"))
;							(dest		(tackon #Localedest (tackon "Svenska" RECALL)))
;							(all)
;		)
;	)
;)
;
(complete 100)
