Використання osadecompile для отримання простого тексту AppleScript виконує певні дії зі сценарію


1

Я використовував це рішення для декомпіляції файлів AppleScript перед тим, як додати їх до сховища Git. В основному він створює фільтр, використовуючи osacompileта osadecompileперетворюючи між джерелом простого тексту та зібраним AppleScript.

Однак я помітив, що деякі програми, на які посилається у сценаріях, несподівано починаються, git addі винуватець цього є osadecompile.

Приклад:

Коли я запускаю osadecompile script.scptнаступний сценарій, запускається Firefox:

tell application "Firefox"
    open location "https://apple.stackexchange.com"
end tell

Це місце не відкриває вказане місце, проте процес Firefox розпочинається та продовжує працювати.

Запитання:

  • Чи можна щось зробити, щоб цього уникнути?

  • Що саме тут відбувається? Чи виконується сценарій у фоновому режимі (інші дії зі сценаріїв - схоже say "something", не виконуються)?

Відповіді:


2

Я не впевнений, у чому полягає технічна причина цього, але, мабуть, доступ до словника AppleScript деяких програм вимагає їх відкриття. Коли я спробую відкрити AppleScript-словник Firefox через редактор сценаріїв, Firefox також відкриється. Коли я намагаюся відкрити словник Keynote v5.3 (версія iWork'09), програма відкривається, тоді як коли я спробую це за допомогою Keynote v7.0.5, додаток не відкривається. Оскільки редактор сценаріїв демонструє таку саму поведінку, я не впевнений, що є спосіб уникнути цього osadecompile.

Я детально не читав документацію Apple Developer на AppleScript , але помітив це речення, яке також передбачає, що деякі програми потрібно відкрити для доступу до свого словника AppleScript, а деякі:

Ете є корисним в 10.4 і раніше для обох програм Carbon і Cocoa, щоб створити словник, який можуть використовувати мови сценаріїв без запуску програми.


Ви маєте рацію, редактор сценаріїв також запускає Firefox при відкритті прикладного сценарію.
techraf
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.