; $VER: Blacks Editor Installer 1.0 (23.12.95)
; Blacks Editor Install Script
;
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(set sourcedir "/")

(set dirname "BED")
(set execname "BED")
(set supportdir "Support")
(set rexxdir "Rexx")
(set icondir "Icons")

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(if (= @language "english")
	(
		(set old_os_msg "BED required minimum OS version: 37\nYour current version: %ld.%ld\n\nBlacks Editor won't probably work on your system.\n\nInstall anyway ?")
		(set target_prompt "Select location to put Blacks Editor %ld.%ld:\nA directory named %s will be created")
		(set exist_dir "The directory selected is\n%s\nDo you wish to install Blacks Editor there ?")
		(set same_version "The same version of Blacks Editor is present\nVersion: %ld.%ld\nDo you want to re-install it ?")
		(set new_version "A newer version of Blacks Editor is present\nOld version: %ld.%ld\nNew Version: %ld.%ld\nInstallation aborted !")
		(set old_version "An older version of Blacks Editor is present\nOld version: %ld.%ld\nNew Version: %ld.%ld\nDo you want to replace it ?")
		(set defs_prompt "Select the definitions files to install:\n(Really important: Startup.dfn and Standard.dfn)")
		(set prefs_prompt "Select the preferences files to install:")
		(set rexx_prompt "Some useful ARexx macros will be copied in\n%s")
		(set icon_prompt "Some Icon templates will be copied in\n%s")
		(set startup_prompt "The following lines will be added to your S:User-Startup\n")
		(set replace_button "Replace")
		(set abort_button "Abort")
		(set install_there_button "Install BED there")
		(set new_dir_button "Create a directory named %s")
		(set old_os_exit "Sorry, Blacks Editor requires OS 2.04+ to run")
		(set same_version_exit "Same version already present !")
		(set new_version_exit "Newer version already present !")
		(set old_version_exit "Older version not replaced !")
		(set noreq_msg "Blacks Editor requires \"reqtools.library\" v38+ to run\n\nPlease download it from Aminet")
		(set oldreq_msg "You have installed \"reqtools.library\" v%ld.%ld\nBlacks Editor requires \"reqtools.library\" v38+\n\nPlease download it from Aminet")
	)
)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(if (= @language "italiano")
	(
		(set old_os_msg "Versione OS minima richiesta da BED: 37\nVersione corrente: %ld.%ld\n\nBlacks Editor probabilmente non funzionerà correttamente sul tuo sistema.\n\nInstalla lo stesso ?")
		(set target_prompt "Scegli il posto dove installare Blacks Editor %ld.%ld:\nSarà creata una directory chiamata %s")
		(set exist_dir "La directory selezionata è\n%s\nVuoi installare Blacks Editor quì ?")
		(set same_version "E' presente la stessa versione di Blacks Editor\nVersione: %ld.%ld\nVuoi re-installare tutto ?")
		(set new_version "E' presente una versione più aggiornata di Blacks Editor\nVecchia versione: %ld.%ld\nNuova versione: %ld.%ld\nInstallazione cancellata !")
		(set old_version "E' presente una vecchia versione di Blacks Editor\nVecchia versione: %ld.%ld\nNuova versione %ld.%ld\nVuoi sostituirla ?")
		(set defs_prompt "Seleziona i files di definizione da installare:\n(Importanti: Startup.dfn e Standard.dfn)")
		(set prefs_prompt "Seleziona i files di preferenze da installare:")
		(set rexx_prompt "Verranno copiate alcune utili macro ARexx in\n%s")
		(set icon_prompt "Verranno copiati alcuni templates di icone in\n%s")
		(set startup_prompt "Le seguenti linee verranno aggiunte alla tua S:User-Startup\n")
		(set replace_button "Sostituisci")
		(set abort_button "Abbandona")
		(set install_there_button "Installa BED quì")
		(set new_dir_button "Crea una directory chiamata %s")
		(set old_os_exit "Spiacente, Blacks Editor richiede almeno il SO 2.04")
		(set same_version_exit "E' già presente la stessa versione di Blacks Editor!")
		(set new_version_exit "E' già presente una versione più aggiornata di Blacks Editor!")
		(set old_version_exit "La vecchia versione di Blacks Editor non è stata sostituita")
		(set noreq_msg "Blacks Editor richiede \"reqtools.library\" v38+ per funzionare\n\nPuoi trovarlo su Aminet")
		(set oldreq_msg "Tu hai installato \"reqtools.library\" v%ld.%ld\nBlacks Editor richiede \"reqtools.library\" v38+\n\nPuoi trovarla su Aminet")
	)
)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(complete 0)

(set new_vernum (getversion (tackon sourcedir "BED")))
(set new_ver (/ new_vernum 65536))
(set new_rev (- new_vernum (* new_ver 65536)))

(set sys_vernum (getversion))
(set sys_ver (/ sys_vernum 65536))
(set sys_rev (- sys_vernum (* sys_ver 65536)))

(if (< sys_ver 37)
	(if (= 0 (askbool
		(prompt (old_os_msg sys_ver sys_rev))
		(help "")
		(default 0))
		)
		(exit old_os_exit)
	)
)

(complete 10)

(set target
	(askdir
		(prompt (target_prompt new_ver new_rev dirname))
		(default @default-dest)
		(disk)
		(help @askdir-help)
	)
)

(complete 15)

(if (= dirname (fileonly target))
	(if (= 1	(askchoice
					(prompt (exist_dir target))
					(choices install_there_button (new_dir_button dirname))
					(default 0)
					(help @askchoice-help)
					)
			)

			(set target (tackon target dirname))
	)

	(set target (tackon target dirname))
)

(complete 20)

(set exec (tackon target execname))

(if (exists exec)
	(
		(set old_vernum (getversion exec))
		(set old_ver (/ old_vernum 65536))
		(set old_rev (- old_vernum (* old_ver 65536)))

		(if (= old_vernum new_vernum)
			(
				(if (= 0 (askbool
									(prompt (same_version old_ver old_rev))
									(choices replace_button abort_button)
									(default 0)
									(help @askbool-help)
									)
								)
						(exit same_version_exit)
				)
			)
			(if (< old_vernum new_vernum)
				(if (= 0 (askbool
									(prompt (old_version old_ver old_rev new_ver new_rev))
									(choices replace_button abort_button)
									(default 1)
									(help @askbool-help)
							)
					)
					(exit old_version_exit)
				)
				(
					(message (new_version old_ver old_rev new_ver new_rev))
					(exit new_version_exit)
				)
			)
		)
	)
)

(complete 25)


; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; *** ReqTools.library ***
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(set req_vernum (getversion "LIBS:reqtools.library" (resident)))
(set req_ver (/ req_vernum 65536))
(set req_rev (- req_vernum (* req_ver 65536)))

(if (= 0 req_vernum)
	(message (noreq_msg))

	(if (< req_ver 38)
		(message (oldreq_msg req_ver req_rev))
	)
)

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; *** BED and BED.guide ***
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(copyfiles
	(prompt "")
	(source (tackon sourcedir ("/%s.info" dirname)))
	(dest (pathonly target))
	(help @copyfiles-help)
)

(copyfiles
	(prompt "")
	(source sourcedir)
	(choices execname ("%s.guide" execname))
	(dest target)
	(infos)
	(help @copyfiles-help)
)

(complete 40)


; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; *** Support ***
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(copyfiles
	(prompt "")
	(source (tackon sourcedir ("%s.info" supportdir)))
	(dest target)
	(help @copyfiles-help)
)

(complete 45)

(copyfiles
	(prompt defs_prompt)
	(source (tackon sourcedir supportdir))
	(pattern "#?.dfn")
	(dest (tackon target supportdir))
	(infos)
	(confirm)
	(help @copyfiles-help)
)

(complete 60)

(copyfiles
	(prompt prefs_prompt)
	(source (tackon sourcedir supportdir))
	(pattern "#?.prf")
	(dest (tackon target supportdir))
	(infos)
	(confirm)
	(help @copyfiles-help)
)

(complete 70)


; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; *** Rexx ***
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(message (rexx_prompt (tackon target rexxdir)))

(copyfiles
	(prompt "")
	(source (tackon sourcedir ("%s.info" rexxdir)))
	(dest target)
	(help @copyfiles-help)
)

(copyfiles
	(prompt "")
	(source (tackon sourcedir rexxdir))
	(all)
	(dest (tackon target rexxdir))
	(infos)
	(help @copyfiles-help)
)

(complete 80)


; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; *** Icons ***
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(message (icon_prompt (tackon target "Icons")))

(copyfiles
	(prompt "")
	(source (tackon sourcedir ("%s.info" icondir)))
	(dest target)
	(help @copyfiles-help)
)

(copyfiles
	(prompt "")
	(source (tackon sourcedir icondir))
	(all)
	(dest (tackon target icondir))
	(infos)
	(help @copyfiles-help)
)

(complete 90)


; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; *** User-Startup ***
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(set assign_lines ("Assign BED: %s\nAssign REXX: %s ADD\nPath BED: ADD\n" target (tackon target rexxdir)))

(startup "Blacks Editor"
	(prompt (cat startup_prompt assign_lines))
	(command assign_lines)
	(help @startup-help)
)

(complete 100)
