Commit | Line | Data |
---|---|---|
bcaf2797 IK |
1 | #!/bin/bash |
2 | # Copyright (C) 2014 Ian Kelling | |
3 | ||
4 | # Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | # you may not use this file except in compliance with the License. | |
6 | # You may obtain a copy of the License at | |
7 | ||
8 | # http://www.apache.org/licenses/LICENSE-2.0 | |
9 | ||
10 | # Unless required by applicable law or agreed to in writing, software | |
11 | # distributed under the License is distributed on an "AS IS" BASIS, | |
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | # See the License for the specific language governing permissions and | |
14 | # limitations under the License. | |
15 | ||
e6d1e24d IK |
16 | # on non-zero return codes outside of if/else,etc, print failure, stack trace, and exit |
17 | # depends on bash-trace function | |
a0898606 | 18 | errcatch() { |
e6d1e24d IK |
19 | set -E; shopt -s extdebug |
20 | _err-trap() { | |
21 | err=$? | |
22 | exec >&2 | |
23 | echo "${BASH_SOURCE[1]}:${BASH_LINENO[0]}:in \`$BASH_COMMAND' returned $err" | |
24 | bash-trace 2 | |
25 | echo "$0: exiting with code $err" | |
26 | exit $err | |
27 | } | |
28 | trap _err-trap ERR | |
29 | set -o pipefail | |
bcaf2797 | 30 | } |