use bash instead of sh to get the source builtin
bail on err