Presento en esta respuesta dos cosas:
- La opción de usar
afplay
, que reproduce archivos de sonido , para la notificación.
- mis herramientas para informar el estado de salida junto con la notificación.
Tengo este script, ~/bin/donebeep
:
#!/bin/bash
if [ "$@" = 0 ]; then
afplay -v 2 /System/Library/Sounds/Blow.aiff &
else
afplay -v 2 /System/Library/Sounds/Sosumi.aiff &
fi
Esto reproduce un sonido diferente dependiendo de si el argumento es 0. Entonces tengo un alias:
alias donebeep='(savestatus=$?; ~/bin/donebeep $savestatus "$@"; exit $savestatus)'
(Que tengan el mismo nombre es irrelevante y probablemente sea una mala idea).
Para usarlo en tu ejemplo, svn update . && ant clean build start; donebeep
. Tenga en cuenta que estoy usando ;
en lugar de &&
, para que pueda notificarme en caso de fallo y éxito.
Antes de Aprendí sobre afplay
, usé say
para hablar mensajes. La función de donebeep
fue desempeñada por este script:
#!/bin/bash
say -v Bruce "Done $(basename "$(pwd)"), $@." &
Este script habla el código de salida directamente en lugar de tener dos mensajes diferentes. También menciona el nombre del directorio actual (para ayudar a aclarar qué tarea se realiza), y se le puede dar un texto adicional para decir al pasar los parámetros al alias (por eso el alias tiene "$@"
). Tenga en cuenta el &
final para que no tenga que esperar a que finalice el discurso antes de recibir un aviso.
La página de manual para afplay
está incompleto; afplay -h
lista todas las opciones:
Usage:
afplay [option...] audio_file
Options: (may appear before or after arguments)
{-v | --volume} VOLUME
set the volume for playback of the file
{-h | --help}
print help
{ --leaks}
run leaks analysis {-t | --time} TIME
play for TIME seconds
{-r | --rate} RATE
play at playback rate
{-q | --rQuality} QUALITY
set the quality used for rate-scaled playback (default is 0 - low quality, 1 - high quality)
{-d | --debug}
debug print output