He registrado los AppleEvents que se envían desde una ventana de Terminal. El evento que el comando osascript
envía al compilador / intérprete de AppleScript no se registró. ¿Cómo es que?
En mayor detalle, el siguiente argumento consta de tres hipótesis seguidas por su conclusión lógica. Sin embargo, el experimento muestra que la conclusión es falsa. De ahí que el argumento sea defectuoso. Desafortunadamente, no sé por qué es defectuoso. ¿Dónde se rompe?
Hipótesis
-
macOS viene con un compilador / intérprete AppleScript incorporado que se instala como un componente OSA.
-
El comando de Terminal
osascript
no "sabe" AppleScript. Cuando se pasa una línea de código AppleScript, se pasa al compilador / intérprete de AppleScript a través de la arquitectura OSA enviando un AppleEvent. -
La siguiente línea de código, cuando se ejecuta en la Terminal, hará que todos los AppleEvents enviados por comandos que se ejecutan desde la misma ventana de Terminal luego se impriman en la Terminal:
export AEDebugSends=1
Conclusión
Después de ejecutar los dos comandos siguientes en una ventana de Terminal:
export AEDebugSends=1
osascript -e 'tell application "Finder" to activate'
deben imprimirse dos AppleEvents:
- Uno dirigido desde
osascript
al compilador / intérprete de AppleScript para compilar y ejecutar el comando 'decirle a la aplicación "Finder" que active'. - Uno dirigido desde el compilador / intérprete de AppleScript al Finder para activarse.
Salida 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 ------