/ / Aggiunta di uno script al menu contestuale del Finder di MacOS: macos, bash, applecript, finder, automator

Aggiunta di uno script al menu contestuale del Finder di MacOS: macos, bash, applescript, finder, automator

Voglio aggiungere un'opzione al menu contestuale del Finder che chiama hg add %1 con% 1 è il percorso completo del file selezionato nel finder.
Naturalmente ci sono casi più utili che mi vengono in mente, da aggiungere al menu di scelta rapida.
Esiste un modo semplice per fare ciò che non comporta l'installazione di software di terze parti o la codifica in un linguaggio compilato e la creazione di plugin binari?
Come creare uno script con l'editor di script e rilasciarlo /Library/Contextual Menu Items/ ?

risposte:

2 per risposta № 1

Sì, lo so che si tratta di software di terze parti, ma per una visione più completa - http://www.abracode.com/free/cmworkshop/on_my_command.html. Un altro strumento che semplificherebbe la scrittura del tuo script è http://wafflesoftware.net/thisservice/ aggiunta di elementi al menu di servizio.


17 per risposta № 2

I passaggi sono cambiati per Snow Leopard / 10.6 + dalla risposta corretta di @khachik. Per essere sicuri che sia chiaro, ecco i passaggi:

  • Apri Automator
  • Crea un nuovo Service
  • Impostare i primi due menu a discesa nella parte superiore su "Il servizio riceve selezionato files or folders in Finder.app"
  • Impostare Pass input su as arguments
  • Scrivi la tua sceneggiatura (vedi sotto per quello).
  • Salva e scegli il nome del servizio

La finestra di Automator dovrebbe essere simile alla seguente: :immagine dello schermo

Ora puoi selezionare più file nel Finder e quindi eseguire il servizio dal sottomenu Servizi.

Per la tua sceneggiatura, penso che tu voglia quanto segue. Questo cambia nella directory di ogni argomento e poi lo aggiunge. Sto usando un ciclo for perché Finder ti consente di selezionare più file in cartelle diverse (che potrebbero trovarsi in repository diversi).

for f in "$@"
do
cd $(dirname $f); hg add $f
done

Se pensavi che fossero tutti nello stesso repository, potresti farlo:

cd $(dirname $1); hg add $@

15 per risposta № 3

Apri Automator, crea un flusso di lavoro personalizzato. A partire dal Library scegliere Utilites, quindi trascina e rilascia Run shell script al flusso di lavoro. Impostato Pass input a As arguments. Scrivi nella tua sceneggiatura: hg add $1. Poi File menu->Save as a Plugin, specifica il nome, scegli plugin for Finder, Save. Fare clic con il tasto destro sul file, selezionare More->Autamator-><PLUGIN_NAME>.