; Script pour installer le paquet Vocabulaire
; Dois être lancé depuis le Workbench en double cliquant sur l`icône
; Vocabulaire-Installation
(procedure Clean-Up
	(delete "ram:format")
	(delete "ram:install")

	(abort "Installation abandonnée...")
)

(transcript "Installation du paquet Vocabulaire...")

(complete 0)
(set dir_original (expandpath (pathonly @icon)))
(set disk_temp (expandpath ("%s:" (getdevice (pathonly @icon)))))
(set disk_original (substr disk_temp 0 (- (strlen disk_temp) 1)))

(set @abort-button "Stopper installation")
(welcome 	"Bienvenu(e) dans le programme Vocabulaire "
		"Par défaut, l'installation est réglée pour le KS2.0."
)

(set version (/ (getversion) 65536))
(set version1 34)
(set version2 36)
(set version3 39)

(set @default-dest "Work:")

(set answer1
        (askchoice
                (prompt "Choisissez où installer le programme Vocabulaire")
                (choices "Disque dur" "Disquette")
		(help	"Selectionner Disque dur installera le programme Vocabulaire "
			"et ses fichiers sur le disque dur. Il vous sera demandé dans "
			"quel répertoire vous voulez l`installer. Le répertoire par défaut "
			"est Work: un sous-répertoire nommé Vocabulaire sera automatiquement "
			"crée.\n\n"
			"Selectionner Disquette installera le programme Vocabulaire "
			"et ses fichiers sur la disquette. Celle-ci sera formatée et "
			"autoboot automatiquement. Veuillez avoir avec vous une disquette "
			"officielle du Workbench."
		)
		(default 0)
        )
)
(if (= answer1 0)
	(; installer sur disque dur
		(set dest_temp  	(tackon 	(askdir		(prompt "Veuillez selectionner le répertoire pour installer.\n "
										"Un sous-répertoire nommé Vocabulaire sera crée."
									)
									(default @default-dest)
									(help 	"Choisissez une destination pour contenir " 
                                						"le programme Vocabulaire et ses fichiers "
										"annexes. "

									)
							)
							"Vocabulaire"
					)
		)
		(complete 20)

		(set @default-dest dest_temp)
		(if (= (makedir @default-dest	(infos)
						(prompt "Création répertoire " @default-dest)
						(help	"Créez-le, sinon pas d'installation")
						(confirm "expert")
			) 0)
			(Clean-Up))

		(complete 40)
	)
	(; installer sur disquette
      		(if (< version version2)
			(if (< version version1)
				(set wbdisk "Workbench1.2")
				(set wbdisk "Workbench1.3")))
		(if (>= version version2)
			(if (>= version version3)
		    		(set wbdisk "Workbench3.0")
		    		(set wbdisk "Workbench2.0")))

		(askdisk	(dest wbdisk)
				(prompt "Veuillez insérer le " wbdisk )
                		(help	"Une disquette officielle du Workbench(COPIE SVP) est "
					"demandée pour copier certains programmes "
					"du répertoire C. pour compléter l`installation.\n\n"
					"Si le nom de la disquette Workbench ne correspond pas, "
					"veuillez renommer votre disquette comme demandé."
					"Pour cela, cliquez sur Stopper Installation, renommer "
					"votre disquette et cliquez à nouveau sur Vocabulaire-Installation."
				)
		)
		(copyfiles (source ("%s:%s" wbdisk "system/Format")) (dest "ram:"))
		(copyfiles (source ("%s:%s" wbdisk "c/Install")) (dest "ram:"))
         
		(set error	(trap 1 (set answer2
						(askchoice
							(prompt "Selectionnez un lecteur qui sera utilisé comme destination.")
							(choices "df0:" "df1:" "df2:" "df3:")
							(default 0)
							(help	"Vous devez choisir un lecteur de disquette pour l`utiliser "
								"comme destination. La disquette que vous allez insérer sera "
								"formatée et toutes ses données seront DETRUITES.\n"
								"Aucune importance si disquette vierge !!.\n\n"
								"Si vous choisissez df0: le programme Vocabulaire-Installation "
								"considérera que vous n`avez qu`un lecteur de disquette."
							)
						)
					)
					(set @default-dest "df0:")
					(if (= answer2 1) (set @default-dest "df1:"))
					(if (= answer2 2) (set @default-dest "df2:"))
					(if (= answer2 3) (set @default-dest "df3:"))

				)
		)
		(if (> error 0)
			(Clean-Up))

		(set error (trap 1 (set answer3
					(askbool (prompt	"Veuillez insérer une disquette (vierge) "
								"dans le lecteur de disquettes " @default-dest
						)
						(help 	"Installation sera faite dans le lecteur de disquette " @default-dest
							".\n\nLes données de la disquette seront détruites...")
						(default 1)
						(choices "Ok" "Annuler")
					)
				)
				(if (= answer3 0)
					(Clean-Up))
			)
		)
		(if (> error 0)
			(Clean-Up))

		(set format_type "")
		(if (= 1 (askbool	(prompt "Choississez le type de formatage de la disquette")
					(help	"Formatage rapide: la disquette a déjà été formatée.\n"
						"                  Uniquement pour KS1.3+.\n"
						"Formatage: formatage normale."
					)
					(default 0)
					(choices "Formatage rapide" "Formatage")
			 ))
			(set format_type "QUICK"))

		(working "Formatage de la disquette dans " @default-dest)
		(if (= 0 @pretend)
			(if (> (trap 1 (run ("ram:format drive %s name Vocabulaire %s" @default-dest format_type))) 0)
				(Clean-Up)))

		(complete 10)
		(set dest_drive @default-dest)
		(set @default-dest "Vocabulaire:")

		(set dest_system @default-dest)
		(if (= answer2 0)
			(set dest_system "ram:")
		)

		(set error8 (trap 1 (set answer3 (askbool	(prompt	"Voulez-vous la rendre autoboot")
								(help	"Si vous ne possêdez qu`un seul lecteur de disquettes, "
									"choisissez cette option.\n"
									"Le programme va copier certains programme de votre "
									"disquette système Workbench pour compléter "
									"compléter cette installation.\n"
									"Si le nom de la disquette Workbench ne correspond pas, "
									"veuillez renommer votre disquette comme demandé."
									"Pour cela, cliquez sur Stopper Installation, renommer "
									"votre disquette et cliquez à nouveau sur Vocabulaire-Installation.\n"
									"REMARQUE: cette séquence va durer plusieurs minutes !!."
								)
								(default 1)
								(choices "Oui" "Non")
						)
				)
				(if (= answer3 1)
					(
						(if (= 0 @pretend)
							(run ("ram:install %s" @default-dest)))

						(set error (trap 1 (askdisk	(dest wbdisk)
										(prompt "Veuillez insérer le " wbdisk )
                								(help	"Une disquette officielle du Workbench est "
											"demandée pour copier certains programmes "
											"du répertoire C. pour compléter l`installation.\n"
										)
								)
							)
						)
						(if (> error 0)
							(Clean-Up))

						(set error1	(trap 4
									(copyfiles (source ("%s:%s" wbdisk "s")) (dest (tackon dest_system "s")) (all))
								)
						)
						(if (> error1 0)
							(message ("Erreur DOS %ld détectée" @ioerr)))

						(if (<> dest_drive "df0:")
							(complete 15))

						(set error2	(trap 4
									(copyfiles (source ("%s:%s" wbdisk "c")) (dest (tackon dest_system "c")) (all))
								)
						)
						(if (> error2 0)
							(message ("Erreur DOS %ld détectée" @ioerr)))

						(if (<> dest_drive "df0:")
							(complete 20))

						(set error3	(trap 4
									(copyfiles (source ("%s:%s" wbdisk "l")) (dest (tackon dest_system "l")) (all))
								)
						)
						(if (> error3 0)
							(message ("Erreur DOS %ld détectée" @ioerr)))

						(if (<> dest_drive "df0:")
							(complete 25))

						(set error4	(trap 4
									(copyfiles (source ("%s:%s" wbdisk "libs")) (dest (tackon dest_system "libs")) (all))
								)
						)
						(if (> error4 0)
							(message ("Erreur DOS %ld détectée" @ioerr)))

						(if (<> dest_drive "df0:")
							(complete 30))

						(set error5	(trap 4
									(copyfiles (source ("%s:%s" wbdisk "devs")) (dest (tackon dest_system "devs")) (all))
								)
						)
						(if (> error5 0)
							(message ("Erreur DOS %ld détectée" @ioerr)))

						(if (<> dest_drive "df0:")
							(complete 35))

						(set error6	(trap 4
									(copyfiles (source ("%s:%s" wbdisk "system")) (dest (tackon dest_system "system")) (all))
								)
						)
						(if (> error6 0)
							(message ("Erreur DOS %ld détectée" @ioerr)))

						(if (<> dest_drive "df0:")
							(complete 40))

						(if (= dest_drive "df0:")
							(
								(if (= 0 @pretend)
								(
									(set error (trap 1 (askdisk	(dest @default-dest)
													(prompt "Veuillez insérer le " @default-dest)
                											(help	"Copie de certains programmes pour compléter l`installation.")
											)
										)
									)
									(if (> error 0)
										(Clean-Up))
								))

								(if (= error1 0)
									(					
										(set dest_temp (tackon @default-dest "s"))
										(makedir dest_temp)
										(set error	(trap 4
													(copyfiles (source (tackon dest_system "s")) (dest dest_temp) (all))
												)
										)
										(if (> error 0)
											(message ("Erreur DOS %ld détectée" @ioerr)))
									)
								)
								(complete 20)

								(if (= error2 0)
									(
										(set dest_temp (tackon @default-dest "c"))
										(makedir dest_temp)
										(set error	(trap 4
													(copyfiles (source (tackon dest_system "c")) (dest dest_temp) (all))
												)
										)
										(if (> error 0)
											(message ("Erreur DOS %ld détectée" @ioerr)))
									)
								)
								(complete 25)

								(if (= error3 0)
									(
										(set dest_temp (tackon @default-dest "l"))
										(makedir dest_temp)
										(set error	(trap 4
													(copyfiles (source (tackon dest_system "l")) (dest dest_temp) (all))
												)
										)
										(if (> error 0)
											(message ("Erreur DOS %ld détectée" @ioerr)))
									)
								)
								(complete 30)

								(if (= error4 0)
									(
										(set dest_temp (tackon @default-dest "libs"))
										(makedir dest_temp)
										(set error	(trap 4
													(copyfiles (source (tackon dest_system "libs")) (dest dest_temp) (all))
												)
										)
										(if (> error 0)
											(message ("Erreur DOS %ld détectée" @ioerr)))
									)
								)
								(complete 35)

								(if (= error5 0)
									(
										(set dest_temp (tackon @default-dest "devs"))
										(makedir dest_temp)
										(set error	(trap 4
													(copyfiles (source (tackon dest_system "devs")) (dest dest_temp) (all))
												)
										)
										(if (> error 0)
											(message ("Erreur DOS %ld détectée" @ioerr)))
									)
								)
								(complete 40)

								(if (= error6 0)
									(
										(set dest_temp (tackon @default-dest "system"))
										(makedir dest_temp)
										(set error	(trap 4
													(copyfiles (source (tackon dest_system "system")) (dest dest_temp) (all))
												)
										)
										(if (> error 0)
											(message ("Erreur DOS %ld détectée" @ioerr)))
									)
								)
							)
						)
						(makedir (tackon @default-dest "utilities"))
					)
				)
			)
		)
		(if (> error8 0)
			(Clean-Up))

		(delete "ram:install")

		(message 	"La disquette est formatée et installée.\n")
	)
)
(if (= 0 @pretend)
	(if (<> (getdevice dir_original) "RAM")
		(if (< 0 (trap 1	(askdisk	(dest disk_original)
							(prompt "Veuillez insérer le disque " disk_original)
							(help	"Copie de programme pour compléter l`installation.")
					)
			))
			(Clean-Up))))

(complete 50)

(set error	(trap 4
			(copylib 	(source (tackon dir_original "Vocabulaire")) 
					(dest @default-dest)
					(prompt	"Installation du programme Vocabulaire")
					(help	"C'est le programme principal, copiez-le")
					(confirm "average")
					(infos)
			)
)		)
(if (> error 0)
	(message ("Erreur DOS %ld détectée" @ioerr)))

(complete 55)

(select	(askchoice	(prompt	"Quel type d'icône pour le programme Vocabulaire "
				"voulez-vous installer."
			)
			(help	"Standard 1.3: 4 couleurs KS1.3.\n"
				"Standard 2.0: 4 couleurs KS2.0 et plus\n".
				"MagicWB: 8 couleurs. MagicWB est Copyright © Martin Huttenloher"
			)
			(choices "Standart 1.3" "Standart 2.0" "MagicWB")
			(default 1)
	)
	(set def_icon "def_voc1.3.info")
	(set def_icon "def_voc2.0.info")
	(set def_icon "def_vocWB.info")
)

(set error	(copyfiles 	(source (tackon dir_original ("%s/%s" "Icons" def_icon)))
				(dest @default-dest)
				(newname "Vocabulaire.info")
				(optional nofail)
				(prompt	"Installation de l'icône Vocabulaire")
				(help	"Installez-le")
				(confirm "expert")
				(files)
		)
)
(if (< (trap 1 error) 0)
	(Clean-Up))
(if (< (trap 4 error) 0)
	(message ("Erreur DOS %ld détectée" @ioerr)))

(complete 60)

(if (= answer1 0)
(
	(set #icon_msg
	(cat	"Voulez-vous installer une image spéciale "
		"pour les icônes des fichiers Vocabulaire.\n"
		"Un sous-répertoire nommé Vocabulaire sera "
		"crée dans ENVARC:."
	))
	(set icon_dest "ENVARC:Vocabulaire")
)
(
	(set #icon_msg
	(cat	"Voulez-vous installer une image spéciale "
		"pour les icônes des fichiers Vocabulaire ?\n"
		"Un sous-répertoire nommé Icon sera crée."
	))
	(set icon_dest (tackon @default-dest "Icon"))
))

(if (< version version1);	merde de 1.2
(
	(set #icon_msg
	(cat	"Voulez-vous installer une image spéciale "
		"pour les icônes des fichiers Vocabulaire ?\n"
		"Un sous-répertoire nommé Icon sera crée "
		"dans le répertoire " @default_dest
	))
	(set icon_dest (tackon @default-dest "Icon"))
))

(set answer2	(askbool	(prompt #icon_msg)
				(help 	"Vous pouvez changer d'aspect les icônes des fichiers "
					"Vocabulaire sans problème, et ainsi dessiner les vôtres."
				)
				(default 1)
				(choices "Oui" "Non")
		)
)
(if (= answer2 1)
	(set dir_maked	(makedir icon_dest
				(infos)
				(prompt "Création répertoire " icon_dest)
				(help	"Créez-le, sinon pas d'icône personnel.")
				(confirm "expert")
			)
	)
)

(complete 70)

(if (> dir_maked 0)
(
	(select	(askchoice	(prompt	"Quel type d'icône pour les fichiers Vocabulaire "
					"voulez-vous installer ?"
				)
				(choices "Standart 1.3" "Standart 2.0" "MagicWB")
				(help	"Standard 1.3: 4 couleurs KS1.3.\n"
					"Standard 2.0: 4 couleurs KS2.0 et plus\n".
					"MagicWB: 8 couleurs. MagicWB est Copyright © Martin Huttenloher"
				)
				(default 1)
		)
		(set def_icon "def_file1.3.info")
		(set def_icon "def_file2.0.info")
		(set def_icon "def_fileWB.info")
	)

	(set error	(copyfiles 	(source (tackon dir_original ("%s/%s" "Icons" def_icon)))
					(dest icon_dest)
					(newname "def_filevocabulaire.info")
					(optional nofail)
					(prompt	"Installation de l'icône des fichiers Vocabulaire")
					(help	"Installez-le")
					(confirm "expert")

			)
	)
	(if (< (trap 1 error) 0)
		(Clean-Up))
	(if (< (trap 4 error) 0)
		(message ("Erreur DOS %ld détectée" @ioerr)))

	(complete 75)

	(if (= icon_dest (tackon @default-dest "Icon"))
		(tooltype	(prompt "Programme Vocabulaire\n"
					"Modification type d'outils: PATHDEFFILE\n"
					"en\n"
					"PATHDEFFILE=" (tackon @default-dest "Icon")
				)
				(help	"Vous permet d'avoir votre propre icône personnel.")
				(dest	(tackon @default-dest "Icon"))
				(settooltype	"PATHDEFFILE" (tackon @default-dest "Icon"))
				(confirm "expert")
		)
	)
))


(complete 80)

(set answer2	(askbool	(prompt "Voulez-vous installer les fichiers Vocabulaire\n"
					"Un sous-répertoire nommé Fichiersvoc sera crée.\n"
					"Veuillez lire l'aide, SVP."
				)
				(help 	"Malheureusement, seul le répertoire sera crée, "
					"car je n'ai toujours pas reçu de réponse positive "
					"de la part de l'éditeur du livre: Français-allemand "
					"compréhension de base.\n"
					"Veuillez m'en excuser."
				)
				(default 1)
				(choices "Oui" "Non")
		)
)

(if (= answer2 1)
	(set dir_maked	(makedir (tackon @default-dest "Fichiersvoc")
				(infos)
				(prompt "Création répertoire " (tackon @default-dest "Fichiersvoc"))
				(help	"Créez-le, sinon pas de fichiers Vocabulaire.")
				(confirm "expert")
			)
	)
)

(if (> dir_maked 0)
	(if (= answer1 0)
		(tooltype	(prompt "Programme Vocabulaire\n"
					"Modification type d'outils: PATHFILE\n"
					"en\n"
					"PATHFILE=" (tackon @default-dest "Fichiersvoc")
				)
				(help	"Celui-ci permet lorsque vous ouvrez une requête "
					"de fichiers de se positionner directement dans ce "
					"répertoire.\n"
				)
				(dest	(tackon @default-dest "Vocabulaire"))
				(settooltype	"PATHFILE" (tackon @default-dest "Fichiersvoc"))
				(confirm "expert")
		)
	)
)

(complete 90)

(set answer2	(askbool	(prompt "Voulez-vous installer la documentation.\n"
					"Un sous-répertoire nommé Docs sera crée."
				)
				(help 	"Un document au format AmigaGuide.\n"
					"Un document au format ASCII.\n"
					"Le programme AmigaGuide® tourne sur tous "
					"les Kickstarts, du 1.2 au 3.0.\n\n"
					"Le programme AmigaGuide® est en domaine public, "
					"Vous pouvez le trouver sur une CAM ou FISH."
				)
				(default 1)
				(choices "Oui" "Non")
		)
)
(if (= answer2 1)
	(
		(if (> (makedir (tackon @default-dest "Docs") 
				(infos)
				(prompt "Création répertoire " (tackon @default-dest "Docs"))
				(help	"Créez-le, sinon pas de documentation.")
				(confirm "expert")
			) 0)
		(
			(set opt_doc	(askoptions	(prompt	"Quels documentations voulez-vous installer ?")
							(help	"Choississez...")
							(choices	"Format AmigaGuide"
									"Format ASCII"
							)
					)
			)
			(if (IN opt_doc 0)
				(
					(set error	(copylib 	(source (tackon dir_original "Docs/Vocabulaire.guide"))
									(dest (tackon @default-dest "Docs"))
									(prompt	"Copie de la documentation.")
									(help	"Documentation AmigaGuide.")
									(optional nofail)
									(confirm "average")
									(infos)
							)
					)
					(if (< (trap 1 error) 0)
						(Clean-Up))
					(if (< (trap 4 error) 0)
						(message ("Erreur DOS %ld détectée" @ioerr)))
				)
			)
			(if (IN opt_doc 1)
				(
					(set error	(copyfiles 	(source (tackon dir_original "Docs/Vocabulaire.doc"))
									(dest (tackon @default-dest "Docs"))
									(prompt	"Copie de la documentation.")
									(help	"Documentation ASCII.")
									(optional nofail)
									(confirm "expert")
									(files)
									(infos)
							)
					)
					(if (< (trap 4 error) 0)
						(message ("Erreur DOS %ld détectée" @ioerr)))
				)
			)
		))
	)
)


(if (< version version2) ; special pour Kickstart 1.2/1.3
	(
		(complete 95)

		(set dest_temp		(askdir	(prompt	"Veuiller selectionner le répertoire où "
						"sera installé la fonte \"spl2.font\". Par "
						"défaut le répertoire est FONTS: "
					)
					(default "FONTS:")
					(help	"Le programme Vocabulaire utilise une fonte "
						"remplaçant la font topaz/8. Celle-ci n`est "
						"pas obligatoire.\n"
						"Uniquement valable pour Kickstart 1.2/1.3."
					)
				)
		)
		(set error	(copyfiles 	(source (tackon dir_original "fonts"))
						(dest dest_temp)
						(optional nofail)
						(prompt	"Installation de la fonte spl2.font")
						(help	"Installez-la")
						(confirm "expert")
						(all)
				)
		)
		(if (< (trap 1 error) 0)
			(Clean-Up))
		(if (< (trap 4 error) 0)
			(message ("Erreur DOS %ld détectée" @ioerr)))
	)
)
(complete 100)

(exit	"Veuillez maintenant lancer le script d'installation "
	"pour la reqtools.library. Il se trouve dans le répertoire "
	"ReqTools/Install de la disquette d'installation."
)
