diff options
author | Yann E. MORIN <yann.morin.1998@free.fr> | 2015-04-01 00:15:05 +0200 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2015-04-03 14:08:54 +0200 |
commit | 3c19d511d79430c9238194b677e69bd15c321307 (patch) | |
tree | 9b72ee4b3c8799309326bac4ffe671f5a4de506d /support/download/dl-wrapper | |
parent | 0012b36c148dcd9a68d16a24168dee464beb2da9 (diff) | |
download | buildroot-3c19d511d79430c9238194b677e69bd15c321307.tar.gz buildroot-3c19d511d79430c9238194b677e69bd15c321307.zip |
support/download: properly catch missing hashes
When checking hashes reports no hash for a file, and this is treated as
an error (now: because BR2_ENFORCE_CHECK_HASH is set; later: because
that will be the new and only behaviour), exit promptly in error.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'support/download/dl-wrapper')
-rwxr-xr-x | support/download/dl-wrapper | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/support/download/dl-wrapper b/support/download/dl-wrapper index 514118c57f..ef2d872938 100755 --- a/support/download/dl-wrapper +++ b/support/download/dl-wrapper @@ -45,10 +45,19 @@ main() { error "no output specified, use -o\n" fi - # If the output file already exists, do not download it again + # If the output file already exists and: + # - there's no .hash file: do not download it again and exit promptly + # - matches all its hashes: do not download it again and exit promptly + # - fails at least one of its hashes: force a re-download + # - there's no hash (but a .hash file): consider it a hard error if [ -e "${output}" ]; then if support/download/check-hash ${quiet} "${hfile}" "${output}" "${output##*/}"; then exit 0 + elif [ ${?} -ne 2 ]; then + # Do not remove the file, otherwise it might get re-downloaded + # from a later location (i.e. primary -> upstream -> mirror). + # Do not print a message, check-hash already did. + exit 1 fi rm -f "${output}" warn "Re-downloading '%s'...\n" "${output##*/}" |