Używając osadecompile do uzyskania zwykłego tekstu AppleScript uruchamia określone akcje ze skryptu

1

Korzystałem z tego rozwiązania do dekompilacji plików AppleScript przed dodaniem ich do repozytorium Git. Zasadniczo tworzy filtr za pomocą osacompilei osadecompiledo konwersji między źródłem zwykłego tekstu a skompilowanym AppleScript.

Zauważyłem jednak, że niektóre aplikacje przywoływane w skryptach nieoczekiwanie uruchamiają się, git adda winowajcą jest osadecompile.

Przykład:

Kiedy uruchamiam osadecompile script.scptnastępujący skrypt, uruchamia się Firefox:

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

Nie otwiera określonej lokalizacji, jednak proces Firefox rozpoczyna się i pozostaje uruchomiony.

Pytania:

  • Czy mogę coś zrobić, aby tego uniknąć?

  • Co się tu właściwie dzieje? Czy skrypt działa w tle (inne działania ze skryptów - na przykład say "something"nie działają)?

techraf
źródło

Odpowiedzi:

3

Nie jestem pewien, jaki jest tego techniczny powód, ale dostęp do słownika AppleScript niektórych aplikacji wydaje się wymagać ich otwarcia. Gdy spróbuję otworzyć słownik AppleScript w przeglądarce Firefox za pomocą Script Editor, Firefox również zostanie otwarty. Kiedy próbuję otworzyć słownik Keynote v5.3 (wersja iWork'09), aplikacja jest otwierana, a gdy próbuję tego z Keynote v7.0.5, aplikacja nie jest otwierana. Ponieważ edytor skryptów zachowuje się tak samo, nie jestem pewien, czy można tego uniknąć osadecompile.

Nie przeczytałem szczegółowo dokumentacji Apple Developer na AppleScript , ale zauważyłem to zdanie, które sugeruje również, że niektóre aplikacje muszą zostać otwarte, aby uzyskać dostęp do ich słownika AppleScript, a niektóre nie:

Aete jest przydatny w wersji 10.4 i wcześniejszych, zarówno w aplikacjach Carbon, jak i Cocoa, aby zapewnić słownik, z którego mogą korzystać języki skryptowe bez uruchamiania aplikacji.

Rinzwind
źródło
Masz rację, Edytor skryptów uruchamia także Firefoksa podczas otwierania przykładowego skryptu.
techraf