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 say
de 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 -h
liste 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
.