3

Я хочу, чтобы OS X разумно открывала URL-адреса git , сначала пытаясь открыть их страницу репо на GitHub , а затем возвращаясь к чему-то вроде GitBox.app.

Я нашел этот вопрос чрезвычайно полезным, и я создал приложение Automator, чтобы обернуть сценарий bash (который выполняет все интеллектуальные функции), и использовал RCDefaultApp, чтобы настроить OS X на использование моего приложения Automator для открытия URL-адресов git:// .

Это не сработало, поэтому я попытался отладить. Я установил свой bash-скрипт для вывода его аргументов в /tmp/output.txt , и оказалось, что скрипт не получает никаких аргументов командной строки. Если я установлю в OS X то же самое приложение-автоматизатор, что и приложение по умолчанию для файлов *.txt , сценарий bash правильно получит путь к файлу в качестве первого аргумента, но он не будет работать с URL-адресами. Есть идеи, как заставить это работать?

Кроме того, я бегу 10,7.

Изменить: Вот снимок приложения Automator:Приложение Automator

А вот текст этого простого скрипта bash (не то, что я на самом деле использовал бы для открытия URL-адресов git:// , но он демонстрирует отсутствие аргументов:

rm -f /tmp/output.txt
echo $0 >> /tmp/output.txt
echo $* >> /tmp/output.txt

И единственный вывод, который я получаю в /tmp/output.txt :

-

1 ответ1

4

Это не работает так, потому что OS X не обрабатывает файлы, папки и URL-адреса, которые являются просто аргументами командной строки для связанных программ на других системах, как и на других платформах. Программы Automator действительно могут обрабатывать только файлы и папки.


Вам необходимо создать приложение на основе AppleScript, которое реагирует на open location .

Откройте редактор AppleScript и вставьте следующий код (конечно, изменив скрипт):

on open location myURL
    do shell script "echo " & myURL & " > /Users/danielbeck/test"
end open location

Сохранить как приложение. Затем выберите только что созданный пакет приложения, щелкните правой кнопкой мыши, Показать содержимое пакета и отредактируйте Contents/Info.plist с помощью текстового редактора (после преобразования в XML с помощью plutil в командной строке, если он двоичный) или редактора по умолчанию, который является частью инструментов разработчика Apple.

Добавьте следующее к его структуре верхнего уровня (снимок экрана - то, как это выглядит в текущем XCode, XML - то, что вы добавили бы в текстовом редакторе):

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>openme</string>
        </array>
        <key>CFBundleURLName</key>
        <string>AppleScript Testing URL</string>
    </dict>
</array>

Это свяжет openme:// URL с этим приложением. Сохраните, переместите программу в другую папку и обратно, чтобы обновить Launch Services, и протестируйте ее, введя openme:// URL в адресную строку веб-браузера:

Конечно, вы захотите заменить openme на git а вызов echo на ваш скрипт оболочки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .