OSX Firefox передает аргументы обработчику протокола магнита
Как открыть магнитные ссылки в Firefox с помощью приложения командной строки, а именно с удаленной передачей?
Я думаю, что мне нужно сделать упакованное приложение, которое принимает аргументы, и вот что я сделал до сих пор:
Используйте Automator для запуска сценария оболочки со следующим:
transmission-remote -a $@
Сохраните скрипт Automator как Transmission.app
- Выберите 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:
- Запустите Automator, выбрав Приложение для "Выберите шаблон для вашего рабочего процесса".
- Найдите действие "Выполнить сценарий оболочки" и перетащите или дважды щелкните его, чтобы добавить его.
- Для выпадающего списка "Пропустить ввод": выберите "В качестве аргументов" <- я думаю, что этот шаг вам не хватает.
- Для выпадающего меню "Shell": выберите оболочку, которая вам нравится (вероятно, / bin / sh, судя по вашему вопросу).
- Automator предоставит вам пример кода, но вы просто захотите получить то, что у вас уже есть:
transmission-remote -a "$@"
(двойные кавычки позволяют правильно пересылать аргументы, содержащие пробелы). - Сохраните приложение.
Когда Firefox запускает это приложение для открытия файлов / загрузок, он передает их родным способом для Mac, затем Automator переводит их в аргументы оболочки, а сценарий оболочки пересылает их transmission-remote
,