OSX Связать сценарий оболочки с расширением файла? - PullRequest
8 голосов
/ 25 августа 2011

Я хочу связать расширение файла .exe со сценарием оболочки, который запускает wine. Каков наилучший способ сделать это?

Из того, что я собрал, мне нужно создать AppleScript, который будет называть wine, но как мне получить имя входного файла в AppleScript? Если есть лучший способ сделать это, дайте мне знать, но, насколько я знаю, это лучший способ.

Ответы [ 2 ]

6 голосов
/ 06 октября 2013

Вы также можете использовать Automator, чтобы обернуть свой собственный скрипт bash, python или ruby ​​в «Приложение».

  1. Откройте Automator и выберите создание приложения.

  2. Найдите действие «Запуск сценария оболочки» и дважды щелкните его или перетащите его вобласть сценария.

  3. Выберите нужный интерпретатор (bash, другие оболочки, python или ruby).

  4. Установите «Pass input»вариант "в качестве аргументов".(В модели автоматизатора приложение «получает файлы и папки в качестве входных данных»; следовательно, это позволяет вашему сценарию видеть имена файлов в качестве аргументов командной строки).

  5. Введите сценарий оболочки в области редактирования.В bash используйте «$ @» для списка аргументов командной строки (индивидуально заключенных в кавычки для защиты встроенных пробелов).

Теперь вы можете сохранить скрипт (он получит расширение .app) и переместите его в папку «Приложения» или в другое разумное место.Он может быть связан с типом файла, как и любое другое приложение.

ПРИМЕЧАНИЕ. Это работает с Mountain Lion (10.8);Кто-нибудь может прокомментировать, как долго Automator смог это сделать?

2 голосов
/ 29 августа 2011

Для этого можно использовать приложение AppleScript - файлы передаются обработчику open , так же, как и капля, например:

on open theFiles
    set arguments to ""
    repeat with anItem in theFiles
        set arguments to arguments & space & (quoted form of POSIX path of anItem)
    end repeat
    do shell script "/path/to/wine" & arguments
end open

Чтобы связать определенный документвведите ваше приложение, вам сначала нужно будет добавить информацию в список информационных свойств вашего приложения ( Info.plist ), чтобы указать Launch Services, какие типы документов он может обрабатывать.См. Apple Обзор приложений на основе документов (или посмотрите настройки других приложений).

...