Dodawanie skryptu do menu kontekstowego programu macOS finder

Chcę dodać opcję do menu kontekstowego Findera, która wywoła hg add %1, a %1 jest pełną ścieżką wybranego pliku w Finderze.
Oczywiście jest więcej przydatnych przypadków, które mogę wymyślić, aby dodać do menu kontekstowego.
Czy istnieje prosty sposób, aby to zrobić, który nie wymaga instalowania oprogramowania innych firm lub kodowania w skompilowanym języku i budowania wtyczek binarnych?
Jak tworzenie skryptu za pomocą Edytora skryptów i upuszczanie go w /Library/Contextual Menu Items/ ?

Author: studgeek, 2010-11-18

3 answers

Tak, Wiem, że to oprogramowanie innych firm-ale dla pełniejszego przeglądu - http://www.abracode.com/free/cmworkshop/on_my_command.html . kolejnym narzędziem ułatwiającym pisanie skryptów jest http://wafflesoftware.net/thisservice / Dodawanie pozycji do menu serwisu.

 2
Author: Zygmunt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-20 07:30:54

Kroki zmieniły się dla Snow Leoparda / 10.6+ od poprawnej odpowiedzi @khachik. Aby upewnić się, że jest jasne, oto kroki:

  • Open Automator
  • Utwórz nowy Service
  • ustaw dwie górne listy rozwijane na górze na "usługa odbiera wybrane files or folders w Finder.app"
  • Ustaw wejście przejścia na as arguments
  • napisz swój skrypt (patrz poniżej).
  • Zapisz i wybierz nazwę Usługi

Twoje okno Automatora powinno wyglądać jak to: :zrzut ekranu

Możesz teraz wybrać wiele plików w Finderze, a następnie uruchomić usługę z podmenu usługi.

Do scenariusza, myślę, że chcesz następujące. To zmienia katalog każdego argumentu, a następnie dodaje go. Używam pętli for, ponieważ Finder pozwala wybrać wiele plików w różnych folderach (które mogą być w różnych repozytoriach).

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

Jeśli założyłeś, że wszystkie są w tym samym repozytorium, możesz to zrobić:

cd $(dirname $1); hg add $@
 17
Author: studgeek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-25 13:35:26

Otwórz Automator, utwórz własny przepływ pracy. Z Library wybierz Utilites, a następnie przeciągnij i upuść Run shell script do obiegu pracy. Ustaw Pass input na As arguments. Napisz w swoim skrypcie: hg add $1. Następnie File menu->Save as a Plugin, podaj nazwę, Wybierz plugin for Finder, Save. Kliknij prawym przyciskiem myszy na pliku, wybierz More->Autamator-><PLUGIN_NAME>.

 15
Author: khachik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-18 14:22:11