automator : Apple script commande pour le terminal

Télémac

Membre expert
Club iGen
1 Février 2001
2 902
31
xplanepilotecontrole.nexgate.ch
Bonjour

Je suis un novice complet en terme de terminal, d'automator et d'apple script.

La situation
j'ai un dossier "machin_truc"
dans ce dossier j'ai un script python "jouet.py"

je lance manuellement le terminal et tape CD ce qui donne
après le signe > CD
après CD je glisse dans le terminal le dossier machin_truc ce qui donne

CD /ssd/machin_truc user$
touche return
nouveau signe >
je glisse le fichier "jouet.py" ce qui donne
CD /ssd/machin_truc user$ /Volumes/SSD/machin_truc/jouet.py

touche return pour valider et mon Py est lancé.

Bon c'est pas très rapide comme procédure.
Aussi j'essaye de réaliser avec automator une application qui en un clic :

m'ouvre le terminal
le met au premier plan
saisi :
CD /ssd/machin_truc
puis saisi
Volumes/SSD/machin_truc/jouet.py
et valide

j'ai pensé passer dans automator par exécuter un script AppleScript

dans la fenêtre du script j'ai fais
-- lancer le terminal et le placer en premier plan
tell application "Terminal"
activate
end
tell

-- ligne de commande envoyée dans le terminal,
do script shell " CD /ssd/machin_truc user$ /Volumes/SSD/machin_truc/jouet.py"


j'ai essayé plusieurs tournures de ligne de commande .

Le terminal s'ouvre mais j'ai toujours des messages d'erreur sans arriver à lancer jouets.py

merci pour une aide

Cordialement
 
Salut

merci pour ton aide

oui cd est en minuscule
la ligne de commande est la suivante ( par glisser déposer le dossier et le script avec le point virgule entre)
do script shell "cd /Volumes/SSD/jeux/Outils_SCENES/machin_truc;/Volumes/SSD/Jeux-12/Outils_SCENES/machin_truc/jouets.py"
ce qui donne

tell application "Terminal"
activate
end
tell
do script shell "cd /Volumes/SSD/jeux/Outils_SCENES/machin_truc;/Volumes/SSD/Jeux-12/Outils_SCENES/machin_truc/jouets.py"

message erreur
fin de ligne, etc. prévu(s) mais « script » trouvé(s).
 
Dernière édition:
C’est « do shell script » et non « do script shell »

Tu peux faire une ligne par commande ça sera plus clair à relire.
 
manuellement le script fonctionne

CAD par manuellement :

ouvrir terminal
saisir cd
glisser dossier machin truc dans le terminal pour le chemin
valider
glisser le script jouet.py
valider
et l'interface jouets s'ouvre.

confirmation dans le script ligne 1

#!/usr/bin/env python3
 
Bonjour,

Ta procédure manuelle... Pourquoi le faire en 2 fois ? , en glissant directement ton fichier script "jouet.py" dans le terminal cela devrait fonctionner !
Tu peux confirmer !

Tu veux faire un script que tu lanceras avec un simple double clic ?
Tu veux avec "Automator" ou avec "applescript"
 
message d'erreur qui semble concerner le script python ( il 'est pas de moi mais utilisé par des milliers d'utilisateurs)

or en lançant ce script en dehors d'apple script ce message d'erreur n'existe pas.


Traceback (most recent call last):
File "/Volumes/SSD/Jeux-12/Outils_SCENES/Ortho4XP-master/Ortho4XP_v130.py", line 9, in <module>
import O4_Imagery_Utils as IMG
File "/Volumes/SSD/Jeux-12/Outils_SCENES/Ortho4XP-master/./src/O4_Imagery_Utils.py", line 6, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
 
Bonjour,

Ta procédure manuelle... Pourquoi le faire en 2 fois ? , en glissant directement ton fichier script "jouet.py" dans le terminal cela devrait fonctionner !
Tu peux confirmer !

Tu veux faire un script que tu lanceras avec un simple double script ?
Tu veux avec "Automator" ou avec "applescript"

Tout dépend s’il écrit ou lit des fichiers avec des chemins non absolus
 
Bonjour,

Ta procédure manuelle... Pourquoi le faire en 2 fois ? , en glissant directement ton fichier script "jouet.py" dans le terminal cela devrait fonctionner !
Tu peux confirmer !

Tu veux faire un script que tu lanceras avec un simple double clic ?
Tu veux avec "Automator" ou avec "applescript"
pour l'explication je l'ai donné en 2 x.
mais je confirme en un fois cela fonctionne à une condition /

glisser dans le terminal après cd le dossier puis utiliser le point virgule pour y glisser le fichiEr python ce Qui donne

cd /Volumes/SSD/Jeux-12/Outils_SCENES/Ortho4XP-master ;/Volumes/SSD/Jeux-12/Outils_SCENES/Ortho4XP-master/Ortho4XP_v130.py

c'est le concepteur du porgramme qui a fait que son outil fonctionne sur windows, mac et linux

Mais il n'y a pas d'installeur ni de lanceur sur mac uniquement sur windows.

Je préfererais un lanceur avec automator sous forme d'application.

J'ai utilisé la commande executer Applescript dans automator.

Je confirme aussi qu'an glissant le fichier python dans le terminal il ne fonctionne pas sans le chemin cd du dossier au préalable.
 
Dans ce cas, dans automator, fais directement "exécuter un script shell" et tu y mets ta ligne de commande qui fonctionne ! sans te servir d'applescript !
 
Pas dans un bloc "exécuter un applescript" ! j'ai dit dans un bloc "exécuter un script shell"
et tu y mets exclusivement ta ligne de commande qui fonctionne !
 
Tu devrais lire les réponses !
J'ai dit exclusivement ta ligne de commande !

Pas de "do shell script" ni de guillemets !
 
comme je ne comprends rien aux lignes de commandes shell j'ai cru que les guillemets faisaient partie de la commande.( désolé)

Ceci étant en les supprimant j'ai ceci comme message d'erreur.

Il trouve une erreur dans le fichier python . Or en utilisant la procédure manu!elle directement dans le terminal il n'y a pas ce message d'erreur



cd: command not found
Traceback (most recent call last):

File "/Volumes/SSD/Jeux-12/Outils_SCENES/Ortho4XP-master/Ortho4XP_v130.py", line 7, in <module>

import O4_File_Names as FNAMES

ModuleNotFoundError: No module named 'O4_File_Names'