3 votos

Notificar cuando se termina la tarea que consume tiempo en el terminal

¿Existe una forma de recibir una notificación cuando alguna tarea de la terminal haya terminado "en segundo plano" en la terminal? Necesito recibir una notificación cuando npm run build que puede tardar hasta 15 minutos. He considerado usar iTerm2 así como añadir terminal-notifier comandos a mi package.json pero ninguno es lo suficientemente adecuado.

¿Se puede conseguir esto con algunas funciones nativas de OSX?

4voto

gedijedi Puntos 136

La forma más sencilla sería invocar una notificación mediante Applescript después de un determinado comando de terminal, de la siguiente manera

npm run build && osascript -e 'display notification "Complete" with title "npm run build"'

El siguiente nivel sería crear un script en package.json :

"scripts": {
  "build-notify": "npm run build && osascript -e 'display notification \"Complete\" with title \"npm run build\"'"
}

Otra opción sería crear un alias personalizado para ejecutarlo todo: alias build="npm run build && osascript -e 'display notification \"Complete\" with title \"Build complete\"'"
A continuación, ejecútelo como un comando de terminal normal: build

Si no te importa el audio, puedes usar el say en su lugar:
npm run build && say done .

También hay algunas herramientas que abstraen un poco esto, como https://github.com/julienXX/terminal-notifier y quizás muchos más.

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