Tengo una aplicación "Applescript Droplet" que necesito ejecutar desde la terminal. Puedo usar osascript
o incluso sólo open
para abrir la AS App, pero eso hará que se ejecute su on run
no el controlador, no el on open
manejador de gotitas que necesito que me corran. Intenté pasar el archivo "Droplet" en ( osascript /Path/To/App.app /Path/To/Droppings.txt
), pero todavía funciona el on run
manejador. ¿Hay alguna manera de hacer esto? Y si no es con el bash, ¿es posible desde otro AppleScript? Gracias.
Respuesta
¿Demasiados anuncios?Puedes usar otro AppleScript que le dice al Finder que abra los archivos con la aplicación de goteo.
Por ejemplo, guarda esto script como /Applications/droplet.app
en el editor de AppleScript:
on open a
repeat with f in a
say POSIX path of f
end repeat
end open
Entonces corre:
osascript -e 'on run {f}' -e 'tell app "Finder" to open POSIX file f as alias using POSIX file "/Applications/droplet.app"' -e end /bin/test
Para abrir varios archivos, convierta la lista de argumentos en una lista de objetos de archivo:
osascript -e 'on run a
set l to {}
repeat with f in a
set l to l & POSIX file f
end
tell app "Finder" to open l using (POSIX file "/Applications/droplet.app")
end' ~/*
Alternativamente, crea la aplicación de gotitas con Automator en lugar de AppleScript Editor:
Entonces corre. open -a droplet2 /bin/test
.
El run
también se utiliza para los archivos que se dejan caer en la aplicación. Un handler llamado open
no tiene ningún significado especial.
Un inconveniente del uso de las aplicaciones de Automator es que hay un retraso relativamente largo antes de que se ejecuten.