;
; ProgED Installer Utility
;
; This script is Copyright 1995-97 Giovanni Lambiase
;

(
	; Setup English default strings

	(set #intro
		(cat
			"ProgED V2.3 - All Rights Reserved.\n"
			"\n"
			"ProgED  '95-'97 Giovanni Lambiase\n"
			"Triton.library - Copyright Stefan Zeiger\n"
			"Reqtools.library - Copyright Nico Franois\n"
			"Powerpacker.library - Copyright Nico Franois\n"
			"XpkMaster.library - Copyright Urban Dominik Mller & Bryan Ford\n"
			"\n"
			"ProgED is NOT 'freely distributable' but SHAREWARE.\n"
			"Look at the licence file before installing ProgED.\n"
			"Installing this software means\naccepting that licence.\n"
			"Thank you.\n"
		)
	)

	(set #badkick "\n Sorry, this package requires OS v2.1 or better.\n")

	(set #askdir
		(cat	"Select where you would like to install "
			"ProgED. A drawer called 'ProgED' will "
			"be created here."
		)
	)

	(set #askdir_help
		(cat
			"ProgED and all necessary files will be installed "
			"in the directory of your choice. You may wish "
			"to create a new directory for ProgED by using "
			"the 'Make New Drawer' gadget.\n\n"
			"You may install this version over your existing "
			"version of ProgED, but you will loose previous "
			"files. Current preference settings will be "
			"backuped."
		)
	)

	(set #overwrite	"The 'ProgED' directory already exists, overwrite?")

	(set #overwrite_help
		(cat
			"You may stop the install to "
			"avoid overwriting your current "
			"version of ProgED.\n\n"
			"Continuing the install will "
			"overwrite your current files "
			"and you will loose your current "
			"preferences."
		)
	)

	(set #yes "Yes")

	(set #no "No")

	(set #quit "Quit")

        (set #ext "ENG")

	(set #havemwb "Do you have MagicWB installed on your system ?")

	(set #havemsb_help
		(cat
			"MagicWB is an icon package by Martin Huttenloher "
			"( 1993). MagicWB icons looks 3D, 8 colors, ecc. "
			"If you haven't it look at your BBS to download "
			"1.2 PD version."
		)
	)

	(set #havesasc "Do you want to overwrite SAS/C support of previously installed release ?")

	(set #havesasc_help
		(cat
			"SAS/C support is slighly changed from previous releases "
			"but, perharps, you have modified it to match your "
			"wishes, so overwriting is a bad idea. "
			"So, if you have modified previous released factory "
			"SAS/C support do not overwrite it and press 'no'. "
			"If you want even to overwrite it press 'yes'. "
		)
	)

	(set #installed "ProgED will be installed in ")

	(set #installing "Installing ProgED Program...")

	(set #creating "Creating 'ProgED' directory")

	(set #copingexe "coping ProgED executable...")

	(set #copingexeprt "coping PED_Print executable...")

	(set #copingman "coping Manual...")

	(set #copinghist "coping History & LastNotes ...")

	(set #crticonsdir "Creating 'Icons' directory")

	(set #crtprjdir "Creating 'Projects' directory")

	(set #crtclientsdir "Creating 'Clients' directory")

	(set #crtfoldersdir "Creating 'Folders' directory")

	(set #crtscannersdir "Creating 'Scanners' directory")

	(set #crtmacrosdir "Creating 'Macros' directory")

	(set #crtcatalogsdir "Creating 'Catalogs' directory")

	(set #crtldir "Creating 'L' directory")

	(set #crtsasc "Creating 'SASC_Support' directory")

	(set #crtsources "Creating 'Sources' directory")

	(set #thanks
		(cat
			"Thanks for registering. Supporting shareware's authors is Amiga's future! "
			"Now you should also install "
			"the triton.library. You can find a general "
			"version of this library in this archive. "
		)
	)

	(set #nokeyfile
		(cat
			"No keyfile was found during "
			"installation. For details of how to register "
			"and receive the full version, refer to the "
			"documentation. If you are a 1.x registered user "
			"please use UpdateKeyFile program to update your "
			"keyfile. DO NOT USE KEYFILES OF 1.0/1.1 "
			"RELEASES. THANKS. If you are a 2.x registered "
			"user simply use your keyfile :-). Now you should also install "
			"the triton.library. You can find a general "
			"version of this library in this archive. "
		)
	)

	(set #reset
		(cat
			"\n\nWhen this installation stops remember that you MUST "
			"reset your Amiga to properly setup ProgED enviroment!"
		)
	)

	(set #setup1
		(cat
			"To properly setup ProgED I have to modify your "
			"User-StartUp adding following command:\n\n"
		)
	)

	(set #setup2
		(cat
			"If you skip this pass you MUST manually enter "
			"it later."
		)
	)

	(set #setup_help
		(cat
			"ProgED needs an Assign in main directory to "
			"properly setup. If you skip this pass you MUST "
			"manually enter it later in your User-StartUp or "
			"in a shell prior to run ProgED."
		)
	)

	(set #prefsbackuped
		(cat
			"I found a previous ProgED preferences file. I "
                        "backuped it as 'ENVARC:PED/PED.oldprefs'. "
			"YOU CAN USE IT ONLY IF IT'S A 2.x "
			"PREFS FILE, OTHERWISE DON'T USE IT! Even you "
			"should give a look to the actual prefs..."
		)
	)

	; If language is german simply set the right extension but
	; use english strings (sorry!)

	(if (= @language "deutsch")
	(
	        (set #ext "GER")
	))

	; If language is italian then ...

	(if (= @language "italiano")
	(
	; Setup Italian strings

	(set #intro
		(cat
			"ProgED V2.3 - All Rights Reserved.\n"
			"\n"
			"ProgED  '95-'97 Giovanni Lambiase\n"
			"Triton.library - Copyright Stefan Zeiger\n"
			"Reqtools.library - Copyright Nico Franois\n"
			"Powerpacker.library - Copyright Nico Franois\n"
			"XpkMaster.library - Copyright Urban Dominik Mller & Bryan Ford\n"
			"\n"
			"ProgED NON E' 'liberamente distribuibile' ma\n"
			"SHAREWARE. Leggi il file di licenza prima di\n"
			"iniziare l'installazione. Installare questo\n"
			" software significa accettare quella licenza.\n"
			"Grazie.\n"
		)
	)

	(set #badkick "\n Spiacente, questo pacchetto richiede il sistema operativo OS v2.1 o superiori.\n")

	(set #askdir
		(cat	"Selezione dove vuoi installare ProgED. "
			"Un nuovo cassetto chiamato 'ProgED' sar "
			"creato dove specificato."
		)
	)

	(set #askdir_help
		(cat
			"ProgED e tutti i file necessari saranno installati "
			"nella directory scelta. Puoi creare un nuovo cassetto "
			"per ProgED usando il gadget 'Crea nuovo cassetto'.\n\n"
			"Puoi installare questa versione sovrascrivendo "
			"una precedente versione di ProgED, ma perderai i "
			"file precedenti. Le vecchie preferenze saranno "
			"archiviate."
		)
	)

	(set #overwrite "Il cassetto 'ProgED' esiste gi, lo sovrascrivo ?")

	(set #overwrite_help
		(cat
			"Puoi fermare l'installazione per "
			"evitare la sovrascrittura della "
			"versione corrente di ProgED.\n\n"
			"Continuare l'installazione sovrascriver "
			"i file correnti e perderai le preferenze "
			"correnti."
		)
	)

	(set #yes "Si")

	(set #no "No")

	(set #quit "Esci")

        (set #ext "ITA")

	(set #havemwb "Hai MagicWB installato sul tuo sistema ?")

	(set #havemsb_help
		(cat
			"MagicWB  un package di icone creato da Martin Huttenloher "
			"( 1993). Le icone di MagicWB sono tridimensionali, hanno "
			"8 colors, ecc. Se non hai ancora installato MagicWB cerca "
			"nella tua BBS la versione 1.2 PD e scaricala."
		)
	)

	(set #havesasc "Vuoi sovrascrivere il supporto SAS/C installato precedentemente ?")

	(set #havesasc_help
		(cat
			"Il supporto SAS/C support  leggermento cambiato dalla versioni precedenti "
			"ma, forse, lo hai modificato per adattarlo ai tuoi desideri. "
			"Se  cos sovrascriverlo  una cattiva idea. "
			"In sostanza, se hai modificato il supporto SAS/C rilasciato con "
			"precedenti versioni non sovrascriverlo e premi 'no'. "
			"Se vuoi comunque sovrascriverlo premi 'si'. "
		)
	)

	(set #installed "ProgED sar installato in ")

	(set #installing "Sto installando il ProgED ...")

	(set #creating "Sto creando il cassetto 'ProgED'")

	(set #copingexe "Sto copiando l'eseguibile del ProgED ...")

	(set #copingexeprt "Sto copiando l'eseguibile del PED_Print ...")

	(set #copingman "Sto copiando il manuale ...")

	(set #copinghist "Sto copiando i file History & LastNotes ...")

	(set #crticonsdir "Sto creando il cassetto 'Icons'")

	(set #crtprjdir "Sto creando il cassetto 'Projects'")

	(set #crtclientsdir "Sto creando il cassetto 'Clients'")

	(set #crtfoldersdir "Sto creando il cassetto 'Folders'")

	(set #crtscannersdir "Sto creando il cassetto 'Scanners'")

	(set #crtmacrosdir "Sto creando il cassetto 'Macros'")

	(set #crtcatalogsdir "Sto creando il cassetto 'Catalogs'")

	(set #crtldir "Sto creando il cassetto 'L'")

	(set #crtsasc "Sto creando il cassetto 'SASC_Support'")

	(set #thanks
		(cat
			"Grazie per esserti registrato. Aiutare gli autori di software shareware  il futuro di Amiga! "
			"Ora dovresti anche installare la triton.library. "
			"Puoi trovarne una versione generale in questo archivio. "
		)
	)

	(set #nokeyfile
		(cat
			"Nessun keyfile trovato durante l'installazione. "
			"Per i dettagli riguardo la registrazione e su come "
			"ricevere una versione pienamente funzionante leggi "
			"la documentazione allegata. Se sei un utente "
			"registrato delle versioni 1.x, per favore, usa il programma "
			"UpdateKeyFile per aggiornare il tuo vecchio keyfile. "
			"NON USARE UN KEYFILE DELLA 1.0/1.1. GRAZIE. "
			"Se sei un utente della 2.x semplicemente usa il tuo keyfile :-) "
			"Ora dovresti anche installare la triton.library. "
			"Puoi trovarne una versione generale in questo archivio. "
		)
	)

	(set #reset
		(cat
			"\nQuando questa installazione sar terminata ricorda "
			"che DEVI resettare il tuo Amiga per preparare propriamente "
			"l'ambiente del ProgED!"
		)
	)

	(set #setup1
		(cat
			"Per preparare l'ambiente del ProgED DEVO modificare la tua "
			"User-StartUp aggiungendo i seguenti comandi:\n\n"
		)
	)

	(set #setup2	"Se salti questo passo DOVRAI inserirli manualmente pi tardi.")

	(set #setup_help
		(cat
			"ProgED necessita di un assegnamento alla sua directory "
			"principale al fine di funzionare correttamente. Se "
			"salti questo passo DOVRAI inserirlo manualmente nella "
			"tua User-StartUp o in una shell prima di eseguire il ProgED."
		)
	)

	(set #prefsbackuped
		(cat
			"Ho trovato una precedente versione del file di "
                        "configurazione di ProgED. E' stato rinominato come "
			"'ENVARC:PED/PED.oldprefs'. PUOI UTILIZZARLO SOLO SE "
			"E' UN FILE DI PREFERENZE DELLA 2.x. IN CASO CONTRARIO "
			"NON UTILIZZARLO! Comunque dovresti dare un'occhiata "
			"alla nuove preferenze..."
		)
	)))

	(message #intro)

	; sure we are running under a 2.1 KICK ?

	(if (< (/ (getversion) 65536) 38)
		(
			(message #badkick)
			(exit (quiet))
		)
	)


	; Ask where to install it...

	(set destdir
		(askdir
			(prompt #askdir)
			(help #askdir_help)
			(default @default-dest)
			(disk)
		)
	)

	(set destdir
		(tackon destdir "ProgED")
	)

	(set @default-dest destdir)

	; See whether this directory exists, if so warn the user

	(if (exists @default-dest) 
		(
			(if (= 0 (askbool
					(prompt #overwrite)
					(help #overwrite_help)
					(choices #yes #quit)
				))

				(

				; User wishes to quit

				(exit (quiet))
				)

			)
		)
	)

	; Ask user if (s)he wants MagicWB icons
	; and figure out where pick up icons

	(if
		(askbool
			(prompt #havemwb)
			(help #havemsb_help)
			(choices #yes #no)
		)
		(set insticonsdir "Icons/MagicWB")
		(set insticonsdir "Icons/Standard")
	)

	; Prompt for choosed dir

	(message #installed @default-dest)

	; Start!

	(complete 0)

	(working #installing)

	; Create the directory if it doesn't exist

	(if (= 0 (exists @default-dest))
		(
			(makedir @default-dest
				(prompt #creating)
				(infos)
			)
		)
	)

	(working #copingexe)

	; Install the ProgED executable file

	(copyfiles
		(source "ProgED")
		(dest @default-dest)
	)

	; Install the PED_Recovery executable file

	(copyfiles
		(source "PED_Recovery")
		(dest @default-dest)
	)

	; Install the prefs dir

	(complete 10)

	(set prefsdir (tackon @default-dest "Prefs"))

	(if (= 0 (exists prefsdir))
		(
			(makedir prefsdir)
		)
	)

	(copyfiles
		(source "Prefs")
		(dest prefsdir)
		(all)
	)

	; Install the images dir

	(complete 15)

	(set imagesdir (tackon @default-dest "Images"))

	(if (= 0 (exists imagesdir))
		(
			(makedir imagesdir)
		)
	)

	(copyfiles
		(source "Images")
		(dest imagesdir)
		(all)
	)

	; Create the stuff directory

	(set stuffdir (tackon @default-dest "Stuff"))

	(if (= 0 (exists stuffdir))
		(
			(makedir stuffdir)
		)
	)

	(complete 20)

	; Install the PED executable file

	(copyfiles
		(source "PED")
		(dest @default-dest)
	)

	(delete
		(tackon @default-dest "PED.info")
	)

	; Install the UpdateKeyFile executable file

	(copyfiles
		(source "UpdateKeyFile")
		(dest @default-dest)
	)

	(complete 25)

	(working #copingexeprt)

	; Install the PED_Print executable file

	(copyfiles
		(source "PED_Print")
		(dest @default-dest)
	)

	(complete 30)

	(working #copingman)

	; Install the Manual & docs

	(copyfiles
		(source (cat "Manual_" #ext))
		(dest @default-dest)
		(newname "Manual")
	)

	(copyfiles
		(source (cat "HTMLClient_" #ext))
		(dest @default-dest)
		(newname "HTMLClient")
	)

	; Install the History and LastNotes

	(working #copinghist)

	(copyfiles
		(source "History")
		(dest @default-dest)
	)

	(copyfiles
		(source "LastNotes")
		(dest @default-dest)
	)

	(complete 35)

	(working #crticonsdir)

	; Create icons' dir

	(set iconsdir (tackon @default-dest "Icons"))

	(if (= 0 (exists iconsdir))
		(
			(makedir iconsdir)

			(copyfiles
				(source (tackon insticonsdir "Icons.info"))
				(dest @default-dest)
			)
		)
	)

	; Copy all icons

	(copyfiles
		(source (tackon insticonsdir "Icons"))
		(dest iconsdir)
		(all)
	)

	(complete 40)

	(working #crtprjdir)

	; Create projects' dir

	(set projectsdir (tackon @default-dest "Projects"))

	(if (= 0 (exists projectsdir))
		(
			(makedir projectsdir)

			(copyfiles
				(source (tackon insticonsdir "Projects.info"))
				(dest @default-dest)
			)
		)
	)

	(complete 45)

	(working #crtclientsdir)

	; Create clients' dir

	(set clientsdir (tackon @default-dest "Clients"))

	(if (= 0 (exists clientsdir))
		(
			(makedir clientsdir)

			(copyfiles
				(source (tackon insticonsdir "Clients.info"))
				(dest @default-dest)
			)
		)
	)

	; Copy all examples clients

	(copyfiles
		(source "Clients")
		(dest clientsdir)
		(all)
	)

	(complete 50)

	(working #crtfoldersdir)

	; Create folders' dir

	(set foldersdir (tackon @default-dest "Folders"))

	(if (= 0 (exists foldersdir))
		(
			(makedir foldersdir)

			(copyfiles
				(source (tackon insticonsdir "Folders.info"))
				(dest @default-dest)
			)
		)
	)

	; Copy all examples folders

	(copyfiles
		(source "Folders")
		(dest foldersdir)
		(all)
	)

	(complete 55)

	(working crtscannersdir)

	; Create scanners' dir

	(set scannersdir (tackon @default-dest "Scanners"))

	(if (= 0 (exists scannersdir))
		(
			(makedir scannersdir)

			(copyfiles
				(source (tackon insticonsdir "Scanners.info"))
				(dest @default-dest)
			)
		)
	)

	; Copy all examples scanners

	(copyfiles
		(source "Scanners")
		(dest scannersdir)
		(all)
	)

	(complete 60)

	(working crtmacrosdir)

	; Create macros' dir

	(set macrosdir (tackon @default-dest "Macros"))

	(if (= 0 (exists macrosdir))
		(
			(makedir macrosdir)

			(copyfiles
				(source (tackon insticonsdir "Macros.info"))
				(dest @default-dest)
			)
		)
	)

	; Copy all examples macros

	(copyfiles
		(source "Macros")
		(dest macrosdir)
		(all)
	)

	(complete 70)

	(working #crtcatalogsdir)

	; Create Catalogs dir

	(set catalogsdir (tackon @default-dest "Catalogs"))

	(if (= 0 (exists catalogsdir))
		(
			(makedir catalogsdir)
		)
	)

	; Copy all catalogs dir

	(copyfiles
		(source "Catalogs")
		(dest catalogsdir)
		(all)
	)

	(complete 75)

	(working crtldir)

	; Create L dir

	(set ldir (tackon @default-dest "L"))

	(if (= 0 (exists ldir))
		(
			(makedir ldir)
		)
	)

	; Copy all handlers

	(copyfiles
		(source "L")
		(dest ldir)
		(all)
	)

	(complete 80)

	(working #crtsasc)

	; Create SASC_Support dir

	(set sascdir (tackon @default-dest "SASC_Support"))

	(if (= 0 (exists sascdir))

		; If the drawer does not exist simply copy all

		(
			; Create dir

			(makedir sascdir)

			; Copy all files

			(copyfiles
				(source "SASC_Support")
				(dest sascdir)
				(all)
			)
		)

		; If the drawer exists ask user if (s)he wants overwrite it

		(if
			(askbool
				(prompt #havesasc)
				(help #havesasc_help)
				(choices #yes #no)
			)
			(
				; If yes, copy all files

				(copyfiles
					(source "SASC_Support")
					(dest sascdir)
					(all)
				)
			)
		)
	)

	(complete 85)

	(working #crtsources)

	; Create sources dir

	(set sourcesdir (tackon @default-dest "Sources"))

	(if (= 0 (exists sourcesdir))
		(
			(makedir sourcesdir)
		)
	)

	; Copy all files

	(copyfiles
		(source "Sources")
		(dest sourcesdir)
		(all)
	)

	(complete 90)

	; Copy all icons

	(copyfiles
		(source insticonsdir)
		(dest @default-dest)
		(all)
	)

	(copyfiles
		(source (tackon insticonsdir "Icons/def_Handler.info"))
		(dest "DEVS:DosDrivers")
		(newname "PED.info")
	)

	(copyfiles
		(source (tackon insticonsdir "Icons/def_Handler.info"))
		(dest "DEVS:DosDrivers")
		(newname "PRJ.info")
	)

	; Copy keyfile if it exists

	(if (exists "KeyFile")
		(
			(copyfiles
				(source "KeyFile")
				(dest @default-dest)
			)

			(set foundkeyfile #thanks)
		)

		; Else, note we didn't find one

		(
			(set foundkeyfile #nokeyfile)
		)
	)

	(set foundkeyfile
		(cat foundkeyfile #reset)
	)

	(complete 95)

	; Check backup prefs

	(set prefsbackup 0)
	(if (<> 0 (exists "ENVARC:PED/PED.prefs"))
		(
			(delete "ENVARC:PED/PED.oldprefs")
			(rename "ENVARC:PED/PED.prefs" "ENVARC:PED/PED.oldprefs")
			(set prefsbackup 1)
		)
	)

	; Copy EnvArc's file

	(set envarcdir "ENVARC:PED")

	(if (= 0 (exists envarcdir))
		(
			(makedir envarcdir)
		)
	)

	; Copy  prefs

	(copyfiles
		(source (cat "EnvArc/PED.prefs." #ext))
		(dest envarcdir)
		(newname "PED.prefs")
	)

	; Copy Presets' file

	(set presetsdir (tackon @default-dest "Presets"))

	(if (= 0 (exists presetsdir))
		(
			(makedir presetsdir)
		)
	)

	(copyfiles
		(source "Presets")
		(dest presetsdir)
		(all)
	)

	; Copy Handlers' files

	(set handlersdir "DEVS:DosDrivers")

	(if (= 0 (exists handlersdir))
		(
			(makedir handlersdir)
		)
	)

	(copyfiles
		(source "Devs")
		(dest handlersdir)
		(all)
	)

	; Updates User-StartUp

	(startup "ProgED"
		(prompt
			(cat
				#setup1
				"Assign ProgED: \"" @default-dest "\"\n"
				"Path ProgED: ADD\n\n"
				#setup2
			)
		)
		(help #setup_help)
		(command
			"Assign ProgED: \"" @default-dest "\"\n"
			"Path ProgED: ADD\n"
		)
	)

	(complete 100)

	; Prefs backuped ?

	(if (= 1 prefsbackup)
		(message #prefsbackuped)
	)

	; Say goodbye

	(message foundkeyfile)
)
