4 votes

Comment mettre en place un shell script comme wrapper de l'exécutable principal d'une application ?

J'ai une application que je veux lancer via un shell script qui fait un peu de configuration et lance ensuite l'application elle-même avec quelques options spécifiques. Idéalement, ce script serait lancé à chaque fois que l'application serait normalement lancée, c'est-à-dire lorsque je clique dessus dans le dock, que je double-clique dans le dossier Applications, que je la lance depuis QS, ou même que je clique sur un fichier qui s'ouvre dans cette application.

Pour l'instant, j'ai un wrapper Applescript "App" pour mon script, mais l'inconvénient est qu'il apparaît comme une application séparée de l'application principale qui se trouve dans mon dock, et je dois donc me rappeler de ne pas cliquer sur l'icône de l'application principale, mais de lancer cette application alternative à la place.

Est-ce que c'est possible ? Une idée que j'ai eue est de renommer l'exécutable principal de l'application en quelque chose d'autre, et de le remplacer par mon script. Est-ce que c'est une chose raisonnable à faire, ou y a-t-il une meilleure solution ?

Pour ceux qui sont curieux, j'essaie de configurer Emacs.app pour qu'il lance un démon et qu'il s'ouvre ensuite avec emacsclient. En fait, je veux que ce script se lance à la place d'emacs (et je vais modifier le script pour qu'il prenne des arguments de fichiers et les ouvre également).

3voto

Jan Points 233

Utilisation /Applications/Emacs.app/Contents/MacOS/Emacs (ou tout autre exécutable dans ce répertoire).

En général, les paquets d'applications sont structurés de la manière décrite ci-dessus. Utilisez Terminal pour ' ls ' votre chemin vers le dossier.

2voto

Oskar Points 1242

Je commencerais par un outil comme L'ornithorynque pour que votre script ait tous les accoutrements d'une application et testez pour voir si les choses fonctionnent comme prévu.

Automator dispose également d'une interface graphique agréable pour décider comment gérer les arguments d'un script - et nous avons plusieurs questions ici qui explorent comment passer des arguments dans et hors d'une action / applet Automator.

Sans plus de détails sur la conception de votre démon et sur la façon dont vous le lancez, je ne peux qu'évoquer certains éléments de votre solution, mais comme tout le monde peut modifier cette réponse pour fournir plus de détails (ou répondre à une réponse indépendante), peut-être que cela peut faire avancer les choses et vous apporter une solution.

1voto

fido9dido Points 162

J'ai pu obtenir ce que je voulais en allant dans le dossier App Contents/MacOS et renommé le binaire Emacs en Emacs.real. J'ai ensuite inséré mon script et l'ai nommé Emacs pour remplacer le binaire, et je l'ai configuré pour appeler Emacs.real après avoir effectué la configuration nécessaire. Ensuite, le lancement de l'application lance mon script.

Malheureusement, d'autres problèmes liés au mode démon d'Emacs m'empêchent de l'utiliser, mais j'ai au moins résolu ce problème !

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X