Je présente dans cette réponse deux choses:
- La possibilité d'utiliser
afplay, qui lit les fichiers sonores , pour la notification.
- mes outils pour signaler le statut de sortie avec la notification.
J'ai ce 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
Cela joue un son différent selon que l'argument est 0 ou non. J'ai alors un alias:
alias donebeep='(savestatus=$?; ~/bin/donebeep $savestatus "$@"; exit $savestatus)'
(Qu'ils aient le même nom est sans importance et probablement une mauvaise idée.)
Pour l'utiliser dans votre exemple svn update . && ant clean build start; donebeep,. Notez que j'utilise ;plutôt que de &&sorte qu'il puisse m'avertir en cas d'échec ou de succès.
Avant d’ apprendreafplay , j’avais l'habitude sayde parler. Le rôle de a donebeepété joué par ce script:
#!/bin/bash
say -v Bruce "Done $(basename "$(pwd)"), $@." &
Ce script prononce directement le code de sortie au lieu d’avoir deux messages différents. Il mentionne également le nom du répertoire en cours (pour aider à préciser quelle tâche est effectuée), et peut recevoir un texte supplémentaire à dire en transmettant des paramètres à l'alias (c'est pourquoi il contient l'alias "$@"). Notez la fin &afin d'éviter d'attendre la fin du discours avant de recevoir une invite.
La page de manuel pourafplay est incomplète; afplay -hliste toutes les options:
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
grownlnotify.