Come posso impostare uno script di shell come wrapper per l'eseguibile principale di un'app?

3

Ho un'applicazione che voglio avviare tramite uno script di shell che esegue alcune impostazioni e avvia l'app stessa con alcune opzioni specifiche. Idealmente, questo script verrebbe eseguito ogni volta che l'applicazione verrebbe normalmente avviata, ovvero quando faccio clic su di esso nel dock, faccio doppio clic sulla cartella Applicazioni, lancio da QS o anche su un file che si apre in questa app.

In questo momento ho una "app" per AppleScript wrapper per il mio script, ma il lato negativo è che appare come un'app separata dall'app principale che si trova nel mio dock, quindi devo ricordarmi di non cliccare sull'app principale icona, ma lancia invece questa app alternativa.

Quindi questo è qualcosa che è possibile fare? Un'idea che ho avuto è di rinominare l'eseguibile principale nell'app per qualcos'altro, e quindi sostituirlo con il mio script. È una cosa ragionevole da fare, o esiste una soluzione migliore?

Per coloro che sono curiosi, sto cercando di configurare Emacs.app per avviare un demone e quindi aprire usando emacsclient. Fondamentalmente, voglio lanciare questo script al posto di emacs (e ho intenzione di modificare lo script per prendere gli argomenti dei file e aprirli allo stesso modo).

    
posta Ryan Thompson 31.05.2013 - 16:42
fonte

3 risposte

1

Sono riuscito a ottenere ciò che volevo entrando nella cartella App Contents/MacOS e rinominando il file binario Emacs in Emacs.real. Poi ho inserito il mio script e l'ho chiamato Emacs per sostituire il file binario, e lo ho impostato per chiamare Emacs.real dopo aver eseguito la configurazione necessaria. Quindi l'avvio dell'applicazione avvia il mio script.

Sfortunatamente, ci sono altri problemi con la modalità daemon di Emacs che mi impedisce di usarlo, ma almeno ho risolto questo problema!

    
risposta data 31.05.2013 - 23:13
fonte
2

Vorrei iniziare con uno strumento come Platypus per fare in modo che il tuo script abbia tutti gli equipaggiamenti di un'App e testare per vedere che le cose funzionano come previsto.

Automator ha anche una bella interfaccia grafica per decidere come gestire gli argomenti per uno script - e qui abbiamo diverse domande che esplorano come passare argomenti dentro e fuori da un'azione / applet di Automator.

Senza ulteriori dettagli su come è progettato il demone e su come lo si avvia, posso solo cogliere alcuni elementi della soluzione, ma poiché chiunque può modificare questa risposta per fornire maggiori dettagli (o rispondere a una versione autonoma risposta) - forse questo può far rotolare la palla per farti una soluzione.

    
risposta data 31.05.2013 - 18:17
fonte
2

Usa /Applications/Emacs.app/Contents/MacOS/Emacs (o altro eseguibile in quella directory).

In generale, i pacchetti di applicazioni sono strutturati come sopra. Utilizza il Terminale per " ls " fino al file.

    
risposta data 31.05.2013 - 18:11
fonte

Leggi altre domande sui tag