This is an embarrassing story. I had a bourne shell build script. In it I would perform various checkout and compilation steps, and finally copy the end result to a directory for deployment. It ran under Cygwin and when it worked, all was well.
When one of the build script steps did not succeed, the script kept running regardless. Unless I had happened to see an error message scroll by in the terminal window, I might miss a broken build. (I should mention that the build script takes a while to run and generates voluminous output.) I did miss broken builds. I need not elaborate on how painful this experience was.
The solution I ended up with is simple. The Cygwin shell is really bash, and bash has a nice error trapping feature.
- changed
#! /bin/shto#! /bin/bash - added the following at the stop of my script
function error_exit {
echo "exiting because of error"
exit 1
}
trap error_exit ERR
Now I no longer need to babysit the build script. Three cheers for the Bourne Again Shell!