; $VER: Scala Echo Install Program Version 1.0 (13Dec93)

;----------------------------- Text Strings -------------------------------

(set msg_NoSelect	"Vous n'avez rien sélectionné. Recommencez, SVP.")
(set msg_NoDrawer	("Vous devez choisir le tiroir où installer %s. Recommencez, SVP." @app-name))
(set msg_ChooseWhat	("Sélectionnez les parties de %s que vous voulez installer :" @app-name))
(set msg_ChooseDest	"Vous devez choisir le tiroir contenant Scala MultiMedia ou InfoChannel.")
(set msg_NoScala	"Scala Multimedia ou InfoChannel ne se trouve pas dans ce tiroir. Recommencez, SVP. Si vous n'avez pas déjà installé Scala Multimedia ou InfoChannel, choisissez \"Interrompre l'install.\" (ou \"Abort Install\") puis installez d'abord Scala Multimedia ou InfoChannel.")
(set msg_OldWorkbench	("Vous devez utiliser le Worbench 2.04 ou supérieur pour installer %s" @app-name))
(set msg_Installing	"\nInstallation de :\n\n%s...")
(set msg_LANC		"EX LANC")
(set msg_InfraRed	"EX Infrarouge")
(set msg_Trainer	"Utilitaire d'apprentissage infrarouge")
(set msg_ClipArt	"Bibliothèque de dessins")
(set msg_Demo		"Script de démo")
(set msg_SelectDrawer	"Dans quel tiroir voulez-vous installer les EX ? (Cliquez sur \"Aide\" ou \"Help\" pour plus d'informations)\n")
(set msg_DrawerHelp	"Si vous choisissez \"Tiroir Startup\", les EX seront automatiquement activés à chaque lancement de Scala MultiMedia ou InfoChannel.\nSi vous choisissez \"Tiroir EX\", ils ne seront pas activés et vous devrez placer manuellement leurs icônes dans le tiroir Startup si vous voulez les utiliser.")
(set msg_StartupDrawer	"Tiroir Startup (utilisation immédiate des EX)")
(set msg_EXDrawer   "Tiroir EX (ne pas utiliser les EX tout de suite)")
(set msg_MoveLingua	"Remplacement des chemins d'accès dans %s...")

;------------------------------ Constants ---------------------------------

(set opt_LANC		%000000001)
(set opt_InfraRed	%000000010)
(set opt_Trainer	%000000100)
(set opt_ClipArt	%000001000)
(set opt_Demo		%000010000)



;-------------------------- Utility procedures ----------------------------

(Procedure CheckConfig
    (set OS_Version (/ (getversion) 65536))
    (if (< OS_Version 37)
	(abort msg_OldWorkbench)
    )
)



;-------------------------- Menu procedures -------------------------------

(Procedure InstallMenu
    (until (<> Selection 0)
    	(
	    (set Selection
	        (askoptions
	            (prompt msg_ChooseWhat)
	            (help @askoptions-help)
                    (choices 
                         msg_LANC
                         msg_InfraRed
                         msg_Trainer
                         msg_ClipArt
                         msg_Demo
                    )
		)
	    )
	)
        (if (= Selection 0)    
            (message msg_NoSelect)
        )
    )
)


(Procedure DestMenu
    (set @dest "")
    (while (or 	(= @dest (pathonly @dest))
    		(not (exists (tackon @dest "Startup")))
    		(not (exists (tackon @dest "EX")))
    		(not (exists (tackon @dest "Utilities")))
    	   )
        (set tmp
            (askdir
                (prompt msg_ChooseDest)
                (help @askdir-help)
                (newpath)
                (default @default-dest)
	    )
        )
        (set @dest tmp)
        (if (= @dest (pathonly @dest))
	    (message msg_NoDrawer)
	    (if	(or (not (exists (tackon @dest "Startup")))
    		    (not (exists (tackon @dest "EX")))
    		    (not (exists (tackon @dest "Utilities")))
		)
		(message msg_NoScala)
	    )
	)
    )
    (if (or (bitand Selection opt_LANC)
    	    (bitand Selection opt_InfraRed)
    	)
        (set Drawer
    	    (select
    	        (askchoice 
	            (prompt msg_SelectDrawer)
	            (choices msg_StartupDrawer msg_EXDrawer)
                    (help msg_DrawerHelp)
	        )
	        "Startup"
	        "EX"
	    )
        )
    )
    (set @default-dest @dest)
)



;------------------------- Installation procedures ------------------------
(Procedure InstallFiles
    (if (bitand Selection opt_LANC)
    	(
	    (working (msg_Installing msg_LANC))
	    (copyfiles	(source "ScalaEcho:EX/LANC")
    			(dest (tackon @dest drawer))
	    		(infos)
	    )
	)
    )
    (if (bitand Selection opt_InfraRed)
    	(
	    (working (msg_Installing msg_InfraRed))
	    (copyfiles	(source "ScalaEcho:EX/Infrarouge")
    			(dest (tackon @dest drawer))
	    		(infos)
	    )
	)
    )
    (if (bitand Selection opt_Trainer)
    	(
	    (working (msg_Installing msg_Trainer))
	    (copyfiles	(source "ScalaEcho:Utilities/ScalaEcho")
    			(dest (tackon @dest "Utilities"))
	    		(infos)
	    )
	)
    )
    (if (or (bitand Selection opt_InfraRed)
    	    (bitand Selection opt_Trainer)
    	)
    	(makedir (tackon @dest "Remotes") (infos))
    )
    (if (bitand Selection opt_ClipArt)
    	(
	    (working (msg_Installing msg_ClipArt))
	    (copyfiles	(source "ScalaEcho:Tools/Lha")
	    		(dest "RAM:")
	    )
	    (working (msg_Installing msg_ClipArt))
	    (run ("RAM:Lha -N x ScalaEcho:ClipArt.lha \"%s/\"" @dest))
	    (delete "RAM:Lha")
    	)
    )
    (if (bitand Selection opt_Demo)
    	(
	    (working (msg_Installing msg_Demo))
	    (copyfiles	(source "ScalaEcho:Scripts/ScalaEcho.script")
    			(dest (tackon @dest "Scripts"))
	    		(infos)
	    )
	    (copyfiles	(source "ScalaEcho:Tools/MoveLingua")
	    		(dest "RAM:")
	    )
	    (set ScriptName (tackon @dest "Scripts/ScalaEcho.script"))
	    (working (msg_MoveLingua ScriptName))
	    (run ("RAM:MoveLingua \"%s\" Work:Scala \"%s\" \"%s\"" ScriptName @dest (tackon @dest "Scripts")))
	    (delete "RAM:MoveLingua")
	)
    )
)

;------------------------------- Main program -----------------------------

(CheckConfig)
(InstallMenu)
(DestMenu)
(InstallFiles)
(exit)
(welcome)
