Usando osadecompile para obtener texto simple AppleScript ejecuta ciertas acciones desde el script

1

He estado usando esta solución para descompilar archivos AppleScript antes de agregarlos a un repositorio Git. Básicamente, crea un filtro utilizando osacompile y osadecompile para convertir entre fuentes de texto sin formato y un AppleScript compilado.

Sin embargo, noté que algunas aplicaciones a las que se hace referencia en los scripts se inician de forma inesperada en git add y el culpable es osadecompile .

Ejemplo :

Cuando ejecuto osadecompile script.scpt en la siguiente secuencia de comandos, se inicia un Firefox:

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

No abre la ubicación especificada, sin embargo, el proceso de Firefox se inicia y sigue ejecutándose.

Preguntas :

  • ¿Hay algo que pueda hacer para evitar esto?

  • ¿Qué está sucediendo exactamente aquí? ¿El script se ejecuta en segundo plano (otras acciones de los scripts, como say "something" no parecen ejecutarse)?

pregunta techraf 09.01.2017 - 09:21

1 respuesta

2

No estoy seguro de cuál es la razón técnica para esto, pero para acceder al diccionario AppleScript de algunas aplicaciones parece ser necesario abrirlas. Cuando intente abrir el diccionario AppleScript de Firefox a través del Editor de secuencias de comandos, también se abrirá Firefox. Cuando intento abrir el diccionario de Keynote v5.3 (versión iWork'09), la aplicación se abre, mientras que cuando intento con Keynote v7.0.5, la aplicación no se abre. Como el Editor de secuencias de comandos muestra el mismo comportamiento, no estoy seguro de que haya alguna forma de evitar esto con osadecompile .

No leí la Documentación del desarrollador de Apple en AppleScript en detalle, pero noté esta oración que también sugiere que algunas aplicaciones deben abrirse para acceder a su diccionario AppleScript mientras que otras no:

  

Un aete es útil en 10.4 y anteriores, tanto en aplicaciones Carbon como Cocoa, para proporcionar un diccionario que los lenguajes de scripting pueden usar sin iniciar la aplicación.

    
respondido por el Rinzwind 09.01.2017 - 09:47

Lea otras preguntas en las etiquetas