Script pour lancer une application avec X11

  • Créateur du sujet Créateur du sujet iManu
  • Date de début Date de début

iManu

Membre actif
23 Février 2001
633
19
Toulouse
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
laugh.gif


Merci
wink.gif
 
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
 
<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
laugh.gif

mais pour les débutants(es) qui sont interresés (es), tu pourrais pas développer un petit plus
wink.gif
 
<blockquote><font class="small">Post&eacute; &agrave; l'origine par Delphine:</font><hr />
je vois ça
laugh.gif

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


[/QUOTE]

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


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
smile.gif
)

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

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

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 ?
... ?
confused.gif