Estoy tratando de hacer una Acción Rápida de Automator que hará lo siguiente:
- Tomar una palabra resaltada,
- buscarla en una base de datos,
- permitir al usuario elegir entre los resultados devueltos por la base de datos, y
- poner la selección del usuario en el portapapeles.
Lo tenía más o menos funcionando, pero algunos de los registros devueltos para la selección del usuario mostraban NULL. Solucioné ese error en la base de datos, pero ahora, aparentemente, nada se está pasando entre los dos scripts: ¡Obtengo "La acción 'Ejecutar AppleScript' encontró un error: 'La lista está vacía.'" Cada. Maldita. Vez.
Aunque no lo está.
Puedo copiar el script de shell y pegarlo en una Terminal, y produce resultados esperados: varias líneas de texto.
Puedo insertar >/tmp/x.txt
en el script, ejecutarlo a través de la Acción Rápida, y ver que el script está enviando resultados esperados a stdout, que supongo es lo que se pasa al AppleScript.
Aquí están los dos scripts, como se muestra en Automator:
Puedo cambiar la salida del script de la base de datos a esto, para capturar la salida en un archivo:
/usr/local/bin/mysql --user=QuotesBrowser --password=resworBsetouQ --host localhost --database=Quotes --raw --silent --batch >/tmp/output.txt <<-EnDoFsQl
SELECT
QuoteAttributed
FROM Quotes
WHERE Quote LIKE "%$*%"
ORDER BY RAND()
LIMIT 20
EnDoFsQl
Luego, cuando resalto la palabra "kiss" en el mensaje de Mail.app, y ejecuto la Acción Rápida a través del menú contextual, obtengo lo siguiente en /tmp/output.txt
:
I am not now, and never have been, a girl friend of Henry Kissinger. -- Gloria Steinem
My lips pressed themselves involuntarily to hers <97> a long, long kiss, burning intense <97> concentrating emotion, heart, soul, all the rays of life's light, into a single focus. -- Bulwer
Satire died in this country the day Henry Kissinger won the Nobel Peace Prize. -- Tom Lehrer
On a planet with a rapidly changing climate, Canada should be figuring out now how to wind down carbon-intensive resource extraction. Otherwise we may soon find that we're producing masses of stuff we can't sell. But anyone who even hints at this idea in Canada is regarded as nuts. Any politician aspiring to national leadership who says such a thing can kiss his or her political career goodbye. -- Thomas Homer-Dixon
Kiss me Kate? Petruchio? The taming of the shrew -- William Shakespeare
It is now 10 p.m. Do you know where Henry Kissinger is? -- Elizabeth Carpenter
Kiss the tear from her lip, you'll find the rose the sweeter for the dew. -- Daniel Webster
Platonic friendship: The interval between the introduction and the first kiss. -- Sophie Irene Loeb
Y sin embargo, al eliminar la redirección de stdout y hacer que el script de la base de datos se vea como en la primera imagen, se obtiene lo siguiente:
No tengo experiencia en AppleScript, y copié esas líneas de otras soluciones que encontré. ¡Pero estaba funcionando!
¡Gracias de antemano por tu ayuda!