[AppleScript] Fenêtre Terminal se ferme trop tôt

Résolu/Fermé
Giac Messages postés 1263 Date d'inscription samedi 3 novembre 2012 Statut Membre Dernière intervention 17 septembre 2016 - Modifié par Giac le 4/08/2014 à 19:57
Giac Messages postés 1263 Date d'inscription samedi 3 novembre 2012 Statut Membre Dernière intervention 17 septembre 2016 - 6 août 2014 à 15:30
Bonjour,

J'ai créé un fichier .app à l'aide de l'éditeur de scripts, qui ouvre le Terminal pour effectuer la commande suivante :
diskutil mount UUIDduDisque

Le but est de faire monter ce disque interne quand j'en ai besoins (le montage automatique au démarrage étant désactivé dans le fichier "fstab") sans aller dans l'utilitaire de disque, par pure flemme d'ouvrir l'app, sélectionner le disque puis appuyer sur le bouton de montage.

Voici donc le script :
tell application "Terminal"
activate #Lancer l'app
do script "diskutil mount 0E65F962-9EE7-44FD-B692-C8ACBE4735A0" #Effectuer la commande
delay 10 #pour laisser le temps d'effectuer la commande
quit #quitter l'app
end tell

Quand je compile le Script et que je le lance depuis l'éditeur, tout marche très bien, mais quand je lance le fichier .app, le temps de pause ne se fait pas et le Terminal me dit que de fermer l'app arrêtera la commande "diskutil" en cours. Ce qui fait aussi que je dois quitter le Terminal manuellement.
Avez-vous une solution concernant ce problème (assez mineur mais qui est relativement ch**nt à l'utilisation)?

Merci d'avance pour votre aide.

PS : le même problème survient quand je coupe le "tell application" en deux (un pour ouvrir et effectuer la commande et l'autre pour fermer l'app) et que j'intercale la pause entre les deux.



May Google be with you!!
A voir également:

2 réponses

Utilisateur anonyme
5 août 2014 à 17:18
Bonjour,

Ça fonctionne parfaitement dans mon cas. (test fait sur un disque externe)
Il faut attendre que le délai soit passé, 10 secondes, ça peut sembler long...
0
Giac Messages postés 1263 Date d'inscription samedi 3 novembre 2012 Statut Membre Dernière intervention 17 septembre 2016 274
5 août 2014 à 17:59
J'ai attendu un moment mais il ne se ferme pas, dès l'ouverture il m'affiche le message d'alerte disant que quitter l'application va interrompre le processus... Je ne sais pas quoi faire, j'ai tout essayé. Il est possible que ça vienne du fait que je suis sous la Beta Publique de Yosemite (un bug mystérieux)
0
Utilisateur anonyme
5 août 2014 à 18:52
j'ai fait l'essai sous Mavericks. Je vais tester sous Yosemite. Faut que je redémarre donc depuis mon DDE...
0
Utilisateur anonyme
5 août 2014 à 19:08
Je viens de faire le test sous Yosemite, et là j'ai exactement le même comportement que chez toi. Il doit y avoir un bug dans Yosemite face à l'application créée.
Dans l'éditeur de script également il y a un bug. j'ai voulu enregistre mes gestes, lancement du Terminal, saisie de la commande etc... mais Editeur de scripts n'enregistre rien. L'application n'est donc pas au point. Je vais le signaler à Apple puisque ça fait partie des bugs.
0
Giac Messages postés 1263 Date d'inscription samedi 3 novembre 2012 Statut Membre Dernière intervention 17 septembre 2016 274
6 août 2014 à 10:25
Ok merci pour ton aide =)
Il n'y a plus qu'à attendre une mise à jour qui va peut-être résoudre ce problème
0
Utilisateur anonyme
6 août 2014 à 10:35
Je vais tester à nouveau un peu plus tard, car justement hier soir, il y a eu une mise à jour "des lignes de commandes..." ou un truc de ce genre, sous Yosemite... des fois que...
0
J'ai fait plusieurs essais différents sous Yosemite,

J'ai trouvé une truc qui fonctionne, bizarre, mais en attendant une correction du bug, ça fonctionne

J'ai écrit 2 scripts, et exporté les 2 en applications.

Le premier script-application exécute le montage du disque et lance le deuxième script-application..

J'ai nommé le deuxième script-application "Quit Terminal"

Ça donne donc ça pour la première application-script

tell application "Terminal"
activate #Lancer l'app
do script "diskutil mount 3DF39B09-BE89-346B-A93D-178D80A3D611" #Effectuer la commande
delay 10
end tell
tell application "Quit terminal"
delay 10
activate
end tell

et dans la deuxième Application-script, il y a ça

tell application "Terminal"
quit
end tell

Soit, la première application



qui appelle la deuxième application:



j'ai tester à plusieurs reprises sur un disque externe, (ça doit être pareil pour le disque interne), ça fonctionne chez moi comme ça...


EDIT: je viens de tester sur le disque interne, ça fonctionne...

Bonne journée, ou Bonne Nuit..:).
Francis
0
Giac Messages postés 1263 Date d'inscription samedi 3 novembre 2012 Statut Membre Dernière intervention 17 septembre 2016 274
6 août 2014 à 15:30
Ok bah merci pour ton aide, c'est vrai que je n'avais pas pensé à le séparer en deux ^^
0