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>
This commit is contained in:
parent
0012b36c14
commit
3c19d511d7
@ -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##*/}"
|
||||
|
Loading…
Reference in New Issue
Block a user