# Script pour lancer une application avec X11



## iManu (30 Mai 2003)

Bon, j'ai un joli code, que je lance depuis une fenêtre X11.
De plus, pour initialiser les variables d'environnement, je dois avant de lancer mon programme lancer un script d'initialisation.
Ex:
source envgate.csh
puis
...monchemin/gate
Question 1
On doit pouvoir scripter le tout ensemble, non ?
Par exemple j'aimerais l'avoir comme un item du menu de X11 (comme le term).

Question 2
Pour vraiment frimer (et au passage simplifier un peu tout ça) est il possible de se retrouver avec une icone cliquable dans le Dock, qui ferait l'initialisation, et lancerait le programme dans X11 ? Ca serait geant  
	

	
	
		
		

		
			





Merci


----------



## Bobbus (30 Mai 2003)

Pour moi, pas de problème dans les deux cas :
- pour la première question, faire un petit shell-script
à mon avis qqchose comme
#!/bin/bash
source (chemin vers le fichier)
(chemin vers l'executable)

ça doit marcher...

- pour la deuxième, c'est un peu plus compliqué, mais pas beaucoup. Si j'avais à faire ça, je pense que je regarderais du côté d'AppleScript. Il suffit de faire un script qui regarde si X11 est lancé (ou XDarwin suivant le X11 utilisé), si ce n'est pas le cas, le lance (et attend qu'il soit disponible...) puis appelle le script précédent avec un petit do shell script...

Bob


----------



## Delphine (30 Mai 2003)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Bobbus:</font><hr /> * Pour moi, pas de problème dans les deux cas 
Bob  * 

[/QUOTE]
je vois ça  
	

	
	
		
		

		
		
	


	



mais pour les débutants(es) qui sont interresés (es), tu pourrais pas développer un petit plus


----------



## Bobbus (31 Mai 2003)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Delphine:</font><hr /> * 
je vois ça  
	

	
	
		
		

		
		
	


	



mais pour les débutants(es) qui sont interresés (es), tu pourrais pas développer un petit plus  
	

	
	
		
		

		
		
	


	


* 

[/QUOTE]

Bon désolé, je vais faire oeuvre d'un peu plus de pédagogie  
	

	
	
		
		

		
		
	


	




Pour faire un script shell, on commence par mettre sur la première ligne #!le nom du shell qui va exécuter le script, donc par exemple
#!/bin/tcsh
... ou n'importe quel shell (installé avec Fink par exemple...) sachant que cela change les possibilités et la syntaxe.

ensuite si on veut une suite de commandes, il suffit de les mettre les unes à la suite des autres chacune sur une ligne.
Ici en l'occurence, ce qu'on veut faire c'est
source envgate.csh 
puis 
...monchemin/gate 

Pour qu'il n'y ait pas d'ambiguité possible, on reprécise dans les deux cas le chemin complet vers le fichier ou l'executable
donc par exemple 
#!/bin/tcsh
source /Users/bob/appliX11/envgate.csh
/Users/bob/appliX11/gate

On met tout ça dans un fichier texte basique (par exemple monscript), on le rend executable en faisant dans le terminal:
chmod a+x monscript
et à chaque fois qu'on fera ./monscript, il lancera les deux commandes l'une après l'autre.


Pour la deuxième question, je verrais qqchose comme ça :

tell application "System Events"
    if (exists process "X11") then
    else
        tell application "X11" to activate
        delay 10
     end if
end tell
try
do shell script "/Users/bob/AppliX11/monscript"
end try

Mais bon, là c'est approximatif, je ne suis pas du tout un spécialiste de l'Applescript. (Je ne sais même pas si il y a un if then else en AS, c'est pour dire 
	

	
	
		
		

		
		
	


	




 )

Voilà voilà, j'espère que c'est plus clair

Bob


----------



## Delphine (31 Mai 2003)

ben voila !! 
	

	
	
		
		

		
		
	


	



je teste des ce soir !


----------



## iManu (31 Mai 2003)

OK merci pour le script csh, ça marche bien. 
	

	
	
		
		

		
		
	


	



Par contre, si je veux lancer le script depuis le menu applications de X11, si je mets gate dans name et /monchemin/gate.csh dans 'command' ça marche pas.
Pourtant j'ai changé le mode (a+x, a+r, a+w) et de l'intérieur d'un terminal X11, la commande gate.csh marche bien...  

Pour info, mon script Gate.csh:
#!/bin/tcsh 
echo 'bonjour'
cd /Users/manu/projets/Geant/petsim/
source /Users/manu/projets/Geant/petsim/env_gate.csh 
/Users/manu/projets/Geant/petsim/bin/Darwin-g++/gate 

J'ai faux où, M'sieur ?
... ?


----------

