Skip to content

Commit

Permalink
support/download/git: properly catch failures
Browse files Browse the repository at this point in the history
Since commit b7efb43 (download/git: try to recover from
utterly-broken repositories), we catch errors through an ERR
trap, so we can try and recover from a broken repository. In
that commit, we switched from using "set -e" to "set -E", so
that trap is inherited in functions, command substitutions,
and subshells.

However, the trap is not defined until we have parsed the
options, created the cache directory, and eventually chdir()ed
into it. Athough improbable, it is possible for the git helper
to fail in any of those steps, and that would not get caught.

Fix that

Signed-off-by: Yann E. MORIN <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
  • Loading branch information
yann-morin-1998 authored and tpetazzoni committed Sep 14, 2023
1 parent 768f9f8 commit daa341c
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions support/download/git
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
# (e.g. tar options, compression ratio or method)), we MUST update the format
# version in the variable BR_FMT_VERSION_git, in package/pkg-download.mk.

# We want to catch any unexpected failure, and exit immediately
set -E
# We want to catch any unexpected failure
set -e

# Download helper for git, to be called from the download wrapper script
#
Expand Down Expand Up @@ -77,6 +77,7 @@ pushd "${git_cache}" >/dev/null

# Any error now should try to recover
trap _on_error ERR
set -E

# Caller needs to single-quote its arguments to prevent them from
# being expanded a second time (in case there are spaces in them)
Expand Down

0 comments on commit daa341c

Please sign in to comment.