; 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    "Wählen sie die zu installierenden Teile von\n " RECALL " " #VERSION " aus: "
         "Drücken sie HELP für 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"
         "Benötigt keiner weiteren Erklärung. Das Programm läuft "
         "ohne diese Library, aber wenn sie diese nicht installieren, "
         "werden sie auf einige Besonderheiten verzichten müssen.\n\n"
      ))
      (set langtxt    (cat    "Wählen sie eine zusätzliche 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 enthält einige Tips"
         "über die Benutzung von " RECALL " und könnte nützlich für"
         "unerfahrene Benutzer sein. Drücken sie 'Ja', um das Projekt"
         "zu installieren.\n\n"
         "Erfahrene Benutzer sollten diesen Teil überspringen und"
         "'Nein' drücken.")
         )
      (set #WhereRecallGuide  (cat "Wählen sie ein Verzeichnis aus, in das das " RECALL "-Amigaguide-Dokument installiert werden soll:"))
      (set #WhereRecallASCII  (cat "Wählen sie ein Verzeichnis aus, in das das " RECALL "-ASCII-Dokument installiert werden soll:"))
      (set #WhereConvertGuide (cat "Wählen sie ein Verzeichnis aus, in das das " CONVERTER "-Amigaguide-Dokument installiert werden soll:"))
      (set #WhereConvertASCII (cat "Wählen 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 nærmere 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 påminnet 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 kjøres "
												"uten dette biblioteket, men hvis du ikke installerer "
												"det, vil du miste et par funksjoner.\n\n"
									))
		(set langtxt	(cat	"Velg hvilke språk 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 være 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"
;							"Español"
;							"Français"
;							"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: España *****
;(if (IN languages 2)
;	(
;		(copyfiles(source	(tackon #Locale "Español"))
;							(dest		(tackon #Localedest (tackon "Español" RECALL)))
;							(all)
;		)
;	)
;)
;
; ****** LANGUAGE: Français *****
;(if (IN languages 3)
;	(
;		(copyfiles(source	(tackon #Locale "Français"))
;							(dest		(tackon #Localedest (tackon "Français" RECALL)))
;							(all)
;		)
;	)
;)
;
;; ****** LANGUAGE: Svenska *****
;(if (IN languages 4)
;	(
;		(copyfiles(source	(tackon #Locale "Svenska"))
;							(dest		(tackon #Localedest (tackon "Svenska" RECALL)))
;							(all)
;		)
;	)
;)
;
(complete 100)
