14 votos

¿Cómo puedo depurar un flujo de trabajo de Automator?

Tengo una acción de automator muy sencilla que consiste en un shell script que debe ejecutarse en una carpeta seleccionada en el finder. Cuando ejecuto la acción me aparece el mensaje:

La acción "Ejecutar Shell script" ha encontrado un error.

Obviamente, esto es demasiado genérico. ¿Existe una manera fácil de ver un mensaje de error más preciso que me dé una pista de cuál es el problema?

9voto

Ged Byrne Puntos 481

Activar el registro de Automator

El panel de registro de Automator debería mostrar información de error más detallada. Puede mostrarla haciendo clic en el botón Registro elemento en el Ver menú (o pulsando L).

Log Panel

8 votos

Pero no estoy ejecutando la acción en el editor de Automator con el botón 'Run', sino directamente en el Finder. No hay manera de ver el error si la acción se ejecuta en el Finder ?, de lo contrario, ¿cómo puedo ejecutar en el editor de Automator si la acción toma un parámetro una carpeta seleccionada ?

2 votos

Sí, puedes ejecutarlo en el editor de Automator y la acción "Elementos seleccionados del Finder" sólo utiliza lo que esté seleccionado en la ventana más frontal del Finder, incluso si no es la ventana activa.

0 votos

En 2016-01-07 en MacOSX 10.10 usando este método para probar scripts que dependen de "Elementos de carpeta seleccionados" no funciona en mi dispositivo.

6voto

Vlad Puntos 131

Si necesita depurar el flujo de trabajo fuera de Automator.app, entonces syslog se puede utilizar el comando.

Digamos que hiciste Acción rápida flujo de trabajo con Ejecutar Shell script acción como la siguiente:

for f in "$@"
do
    syslog -s -l i "Touching file: $f"
    touch "$f"
done

"Quick Action" workflow

Ahora puede utilizar Acción rápida en Finder:

Running "Quick Action"

Salida de syslog se puede ver en Console.app:

Output of Syslog command

Otra forma de ver la salida de syslog es utilizar log en Terminal.app.

log stream --info --debug --predicate 'process == "syslog"'

log command in Terminal.app


Actualización

Podemos mejorar Acción rápida mostrado arriba enviando una notificación local al finalizar con éxito:

for f in "$@"
do
    syslog -s -l i "Touching file: $f"
    touch "$f" || exit 1 # Early exit on failure.
    osascript -e "display notification \"Touched file: $f \" with title \"Automation\""
done

Local notification

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X