Skip to content
Snippets Groups Projects
Commit 680a4678 authored by Thomas Jahns's avatar Thomas Jahns :cartwheel:
Browse files

release script: Move error handler into shell include.

parent 2335a246
No related branches found
No related tags found
No related merge requests found
......@@ -43,23 +43,12 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
set -e
# trap functions are incorrectly diagnosed by shellcheck as unreachable
# shellcheck disable=SC2317
errMsg()
{
typeset cmd=$BASH_COMMAND pfx
typeset -i ofs=0 vpos src_lev=${#BASH_SOURCE[@]}
while [[ "${cmd:$ofs}" =~ \$\{([a-zA-Z_][a-zA-Z_0-9]*)\} ]]; do
pfx=${cmd:ofs}; vpos=${pfx%%\$*}; ofs=$((ofs+${#vpos}))
cmd=${cmd/\$\{${BASH_REMATCH[1]}\}/${!BASH_REMATCH[1]}}
done
printf 'error: failed to run command\n%s\nat %s, line %d!\n' "$cmd" \
"${BASH_SOURCE[$src_lev-2]}" "${BASH_LINENO[$src_lev-2]}" >&2
}
trap errMsg ERR
# shellcheck source=get-package-and-version.shinc
. scripts/release/get-package-and-version.shinc
trap errMsg ERR
if [[ ${TMPDIR+set} = '' ]]; then
if [[ -d "$XDG_RUNTIME_DIR" && -w "$XDG_RUNTIME_DIR" ]]; then
TMPDIR=$XDG_RUNTIME_DIR
......
......@@ -56,6 +56,21 @@ else
fi
log_dir=${log_dir-"${package}-${version}-release-logs"}
mkdir -p "$log_dir"
# trap functions are incorrectly diagnosed by shellcheck as unreachable
# shellcheck disable=SC2317
errMsg()
{
typeset cmd=$BASH_COMMAND pfx
typeset -i ofs=0 vpos src_lev=${#BASH_SOURCE[@]}
while [[ "${cmd:$ofs}" =~ \$\{([a-zA-Z_][a-zA-Z_0-9]*)\} ]]; do
pfx=${cmd:ofs}; vpos=${pfx%%\$*}; ofs=$((ofs+${#vpos}))
cmd=${cmd/\$\{${BASH_REMATCH[1]}\}/${!BASH_REMATCH[1]}}
done
printf 'error: failed to run command\n%s\nat %s, line %d!\n' "$cmd" \
"${BASH_SOURCE[$src_lev-2]}" "${BASH_LINENO[$src_lev-2]}" >&2
}
#
# Local Variables:
# coding: utf-8
......
......@@ -29,17 +29,6 @@ set -e
# shellcheck source=get-package-and-version.shinc
. scripts/release/get-package-and-version.shinc
errMsg()
{
typeset cmd=$BASH_COMMAND pfx
typeset -i ofs=0 vpos src_lev=${#BASH_SOURCE[@]}
while [[ "${cmd:$ofs}" =~ \$\{([a-zA-Z_][a-zA-Z_0-9]*)\} ]]; do
pfx=${cmd:ofs}; vpos=${pfx%%\$*}; ofs=$((ofs+${#vpos}))
cmd=${cmd/\$\{${BASH_REMATCH[1]}\}/${!BASH_REMATCH[1]}}
done
printf 'error: failed to run command\n%s\nat %s, line %d!\n' "$cmd" \
"${BASH_SOURCE[$src_lev-2]}" "${BASH_LINENO[$src_lev-2]}" >&2
}
trap errMsg ERR
if (( ${DEBUG:-0} )); then
......
......@@ -38,18 +38,6 @@
#
#
set -e
errMsg()
{
typeset cmd=$BASH_COMMAND pfx
typeset -i ofs=0 vpos src_lev=${#BASH_SOURCE[@]}
while [[ "${cmd:$ofs}" =~ \$\{([a-zA-Z_][a-zA-Z_0-9]*)\} ]]; do
pfx=${cmd:ofs}; vpos=${pfx%%\$*}; ofs=$((ofs+${#vpos}))
cmd=${cmd/\$\{${BASH_REMATCH[1]}\}/${!BASH_REMATCH[1]}}
done
printf 'error: failed to run command\n%s\nat %s, line %d!\n' "$cmd" \
"${BASH_SOURCE[$src_lev-2]}" "${BASH_LINENO[$src_lev-2]}" >&2
}
trap errMsg ERR
# this should guarantee reproducible results from automake runs
export PERL_HASH_SEED=0
......@@ -59,6 +47,7 @@ if [[ -r configure && -r scripts/release/make-release-commit ]]; then
# 1. import common script settings
# shellcheck source=get-package-and-version.shinc
. scripts/release/get-package-and-version.shinc
trap errMsg ERR
# 2. check the version about to be released is actually new
if git rev-parse "refs/tags/v$version" >/dev/null 2>&1 ; then
echo "A tag for version $version has already been created." >&2
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment