Ich habe eine Anwendung, die ich über ein Shell-Skript starten möchte, das einige Einstellungen vornimmt und dann die Anwendung selbst mit einigen spezifischen Optionen startet. Idealerweise würde dieses Skript immer dann ausgeführt, wenn die Anwendung normalerweise gestartet würde, dh wenn ich im Dock darauf klicke, im Anwendungsordner doppelklicke, von QS aus starte oder sogar auf eine Datei klicke, die in dieser Anwendung geöffnet wird.
Im Moment habe ich einen Applescript-Wrapper „App“ für mein Skript, aber der Nachteil ist, dass es als separate App von der Haupt-App erscheint, die sich in meinem Dock befindet, also muss ich daran denken, nicht auf das Symbol der Haupt-App zu klicken, aber Starten Sie stattdessen diese alternative App.
Ist das also möglich? Eine Idee, die ich hatte, war, die ausführbare Hauptdatei in der App in etwas anderes umzubenennen und sie dann durch mein Skript zu ersetzen. Ist das sinnvoll oder gibt es eine bessere Lösung?
Für diejenigen, die neugierig sind, versuche ich, Emacs.app so einzurichten, dass ein Daemon gestartet und dann mit emacsclient geöffnet wird. Grundsätzlich möchte ich, dass dieses Skript anstelle von emacs gestartet wird (und ich werde das Skript ändern, um Dateiargumente zu übernehmen und sie ebenfalls zu öffnen).
Use /Applications/Emacs.app/Contents/MacOS/Emacs
(oder eine andere ausführbare Datei in diesem Verzeichnis).
Im Allgemeinen sind Anwendungspakete wie oben strukturiert. Verwenden Sie das Terminal, um ls
zu der Datei zu gelangen.
Ich würde mit einem Tool wie Platypus beginnen , damit Ihr Skript alle Ausstattungsmerkmale einer App enthält, und testen, ob die Dinge wie erwartet funktionieren.
Automator hat auch eine schöne GUI, um zu entscheiden, wie Argumente für ein Skript behandelt werden sollen - und wir haben hier mehrere Fragen, die untersuchen, wie Argumente in und aus einer Automator-Aktion / einem Automator-Applet übergeben werden.
Ohne weitere Details darüber, wie Ihr Daemon entworfen ist und wie Sie ihn starten, kann ich nur einige Elemente Ihrer Lösung herausgreifen, aber da jeder diese Antwort bearbeiten kann, um weitere Details bereitzustellen (oder eine eigenständige Antwort zu beantworten) - Vielleicht kann das den Stein ins Rollen bringen, um Ihnen eine Lösung zu bringen.
Ich konnte bekommen, was ich wollte, indem ich in den App-Ordner ging Contents/MacOS
und die Emacs-Binärdatei in Emacs.real umbenannte. Dann habe ich mein Skript eingefügt und es Emacs genannt, um die Binärdatei zu ersetzen, und es so eingerichtet, dass es Emacs.real aufruft, nachdem ich die erforderlichen Einstellungen vorgenommen habe. Wenn Sie dann die App starten, wird mein Skript gestartet.
Leider gibt es andere Probleme mit dem Daemon-Modus von Emacs, die mich daran hindern, ihn zu verwenden, aber zumindest habe ich dieses Problem gelöst!
mmmmmm
Ryan C. Thompson
Fahrrad
Jan
Ryan C. Thompson