OSX Firefox передает аргументы обработчику протокола магнита

Как открыть магнитные ссылки в Firefox с помощью приложения командной строки, а именно с удаленной передачей?

Я думаю, что мне нужно сделать упакованное приложение, которое принимает аргументы, и вот что я сделал до сих пор:

  1. Используйте Automator для запуска сценария оболочки со следующим:

    transmission-remote -a $@

  2. Сохраните скрипт Automator как Transmission.app

  3. Выберите Transmission.app в Firefox при использовании его для магнитных ссылок

Однако для передачи аргументов необходимо:

open Transmission.app --args magnet:etc

Я предполагаю, что Firefox делает что-то вроде: Transmission.app %s, но я не могу сказать, как Firefox передает аргументы вспомогательному приложению. Я также попытался создать сценарий оболочки оболочки и назвать его helper.app но безрезультатно.

Или же Firefox может использовать что-то вроде этого в качестве обработчика протокола, где я могу передать в%s?

open Transmission.app --args %s

РЕДАКТИРОВАТЬ: DS ответ, очевидно, работает на Snow Leopard и Lion, но у меня все еще проблемы с пустыми аргументами, посылаемыми из Firefox. Я также вставлю свой комментарий здесь:

Я пробовал следующее, но отправляются только пробелы: echo "$@" >> ~/somefile и echo "$*" >> ~/somefile с кавычками и без них. Возможно, это мои настройки Firefox (о:config?). Я использую 19.0.2 (последняя версия), OSX 10.8.2 на случай, если кто-нибудь еще подключится...

1 ответ

Я боролся с тем же вопросом. Я заставил это работать, и я думаю, что вы пропустили маленький шаг. Очевидно, что Firefox на Mac для своих приложений "Open With" не передает аргументы через переменные командной строки, переменные окружения или любой другой unix-подобный метод. Он использует Mac Launch Services . Automator может перевести их в аргументы командной строки. Следующие работы над Snow Leopard:

  1. Запустите Automator, выбрав Приложение для "Выберите шаблон для вашего рабочего процесса".
  2. Найдите действие "Выполнить сценарий оболочки" и перетащите или дважды щелкните его, чтобы добавить его.
  3. Для выпадающего списка "Пропустить ввод": выберите "В качестве аргументов" <- я думаю, что этот шаг вам не хватает.
  4. Для выпадающего меню "Shell": выберите оболочку, которая вам нравится (вероятно, / bin / sh, судя по вашему вопросу).
  5. Automator предоставит вам пример кода, но вы просто захотите получить то, что у вас уже есть: transmission-remote -a "$@" (двойные кавычки позволяют правильно пересылать аргументы, содержащие пробелы).
  6. Сохраните приложение.

Когда Firefox запускает это приложение для открытия файлов / загрузок, он передает их родным способом для Mac, затем Automator переводит их в аргументы оболочки, а сценарий оболочки пересылает их transmission-remote ,

Другие вопросы по тегам