2 votos

¿Cómo hago que el "porcentaje completado" funcione en las aplicaciones de Automator?

Cuando creo aplicaciones con Automator, se ejecutan con el pequeño engranaje que aparece en la parte superior derecha.

Cuando hago clic en el engranaje dice "0% completado (Ejecutar script de shell)".

Esta característica está documentada de forma escasa por Apple y no puedo encontrar un ejemplo de terceros de esto y me preguntaba si puedo incorporar el progreso en la barra de menús para mis scripts.

Por ejemplo, ejecuto un demonio de rsync para hacer copias de seguridad de datos cada semana.

Tengo una aplicación de Automator para ejecutar este script zsh.

#!/bin/zsh

echo "Comenzando. $(date)" >> /Users/admin/Scripts/Automation/rsync/rsync.log
open /Users/admin/Scripts/Automation/rsync/notify_starting.app

rsync -r --delete --exclude 'Data 1' --exclude 'Data 2' /Users/admin/Documents /Volumes/TOSHIBA/Backups/rsync
rsync -r --delete /Users/admin/2022 /Volumes/TOSHIBA/Backups/rsync
rsync -r --max-size=100m --delete /Users/admin/Desktop /Volumes/TOSHIBA/Backups/rsync
rsync -r --delete /Users/admin/out_data /Volumes/TOSHIBA/Backups/rsync
rsync -r --delete /Users/admin/WESTERFIELD /Volumes/TOSHIBA/Backups/rsync
rsync -r --delete /Users/admin/images/2022 /Volumes/TOSHIBA/Backups/rsync
rsync -r --delete /Users/admin/Scripts /Volumes/TOSHIBA/Backups/rsync
rsync -r --max-size=100m --delete /Users/admin /Volumes/TOSHIBA/Backups/rsync

echo "Completado. $(date)" >> /Users/admin/Scripts/Automation/rsync/rsync.log
echo "\n\n" >>  /Users/admin/Scripts/Automation/rsync/rsync.log
open /Users/admin/Scripts/Automation/rsync/notify_completed.app

Lleva un tiempo correr y ralentiza un poco la computadora. Sería realmente agradable ver cuánto ha progresado. Entiendo que puede que no sea posible saber exactamente, pero si pudiera saber incluso en qué línea de los comandos de rsync ha llegado, eso sería un comienzo.

¿Es posible cambiar mi script para permitir que el progreso de los programas cambie el porcentaje en lugar de solo ejecutándose y listo?

0voto

SydMK Puntos 41

Veamos si esto ayuda, en la "Guía de secuencias de comandos de automatización de Mac" en la sección "Interactuar con los usuarios" lista Mostrar progreso:

    - Restablecer la información de progreso
    set total pasos de progreso a 0
    set pasos completados de progreso a 0
    set descripción de progreso a ""
    set descripción adicional de progreso a ""

Entonces, a medida que avanza en el script, parece que cambiar estos parámetros ayuda a mostrar el progreso en la barra de menú. Aún no he completado mis pruebas al respecto. Pero, esto es lo que estaré haciendo.

--

Desde que escribí la respuesta anterior, lo probé por mí mismo. Si tienes acceso a ejecutar Apple Script, creo que aún es válido (por lo tanto, seguiré probándolo más a fondo por mí mismo).

Sin embargo, también encontré una victoria rápida:

porcentaje="10%"
contador=2

osascript -e "mostrar notificación \"script completado: ${porcentaje}\" con título \"Progreso del script ${contador}\""

Aquí he usado dos variables. Siéntete libre de ajustar según tus necesidades. Las variables son opcionales. Pero pensé que serían útiles.

La clave secreta es el comando osascript. Puedes pasar el comando del script con el interruptor -e. Y hacer que se ejecute tu mostrar notificación, que no es lo más elegante. Pero sin tener que mirar los registros, ahora puedes ver algo en la GUI mientras trabajas en otras tareas importantes.

Nuevamente, para simplificar, el comando básico se vería algo así:

osascript -e "mostrar notificación MiMensaje con título MiTituloMensaje"

Una versión un poco más completa se vería así:

osascript -e 'mostrar notificación "Todos los gráficos han sido convertidos." con título "Mi secuencia de comandos de procesamiento gráfico" subtítulo "Procesamiento completo." nombre del sonido "Rana"'

Espero que esto ayude un poco.

Referencia: https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/DisplayNotifications.html

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