He registrado los AppleEvents que se envían desde una ventana de Terminal. El evento que el osascript
envía al compilador/interpretador de AppleScript no se registró. ¿Por qué?
En mayor detalle, el siguiente argumento consta de tres hipótesis seguidas de su conclusión lógica. Sin embargo, el experimento demuestra que la conclusión es falsa. Por lo tanto, el argumento es defectuoso. Por desgracia, no sé por qué es defectuoso. ¿Dónde se rompe?
Hipótesis
-
MacOS viene con un compilador/interpretador de AppleScript incorporado que se instala como un componente OSA.
-
El comando Terminal
osascript
no "conoce" AppleScript. Cuando se le pasa una línea de código AppleScript, la transmite al compilador/interpretador de AppleScript a través de la arquitectura OSA enviando un AppleEvent. -
La siguiente línea de código, cuando se ejecuta en el Terminal, hará que se impriman en el Terminal todos los AppleEvents enviados por los comandos que se ejecuten posteriormente desde la misma ventana del Terminal:
export AEDebugSends=1
Conclusión
Después de ejecutar los dos siguientes comandos en una ventana de Terminal:
export AEDebugSends=1
osascript -e 'tell application "Finder" to activate'
dos AppleEvents deben imprimirse:
- Uno dirigido desde
osascript
al compilador/interpretador de AppleScript para que compile y ejecute el comando 'decirle a la aplicación "Finder" que se active'. - Uno dirigido desde el compilador/interpretador de AppleScript a Finder para activarse.
Producción real
Sólo se imprime un AppleEvent, el que se envía al Finder:
AE2000 (4085 ): Enviando un evento:
------oo inicio del evento oo------
aevt('misc'\'actv' transactionID=0 sourcePSN=[0x0,e00e "Finder"] timeout=7200 eventSource=3 { &'subj':null(), &'csig':magn(65536) })
------oo fin del evento oo------