Audible "Command done" notifiction on the shell
Background story / context
At work I'm dealing with a test suite running >30 minutes, even on moderately fast hardware. When testing some changes, I launch the test suite and start working on something else to not be waiting for the test suite. Now the sooner I know that the test suite finished execution, the sooner I can fix errors and give it another spin. So checking the test suite for being done manually is not efficient.
The problem
What I wanted was a notification, something audible, looped, like an alarm clock. Either
$ ALARM_WHEN_DONE cmd [p1 p2 ..]
or
$ cmd [p1 p2 ..] ; ALARM
usage would have worked for me.
My approach
I ended up grabbing the free Analog Alarm Clock sound — the low-quality MP3 version download works without registration — and this shell alias:
$ alias ALARM='mplayer --loop=0 ~/Desktop/alarm.mp3 &>/dev/null'
With this alias, now I can do stuff like
$ ./testrunner ; ALARM
on the shell and never miss the end of test suite execution again. Do you have a different/better approach to the same problem? Let me know! PS: Yes, I have heard of continuous integration and we do that, too.