[Buildroot] [PATCH 3/5 v2] support/download: return different exit codes for different failures

Yann E. MORIN yann.morin.1998 at free.fr
Tue Mar 17 12:59:36 UTC 2015

Return different exit codes depending on the error that occured:

  0: no error (hash file missing, or all hashes match)
  1: hash file exists, but at least one hash in error
  2: hash file exists, but no hash for file to check

Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Cc: Samuel Martin <s.martin49 at gmail.com>

Changes v1 -> v2:
  - typoes in script and commit  (Samuel)
 support/download/check-hash | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/support/download/check-hash b/support/download/check-hash
index cee64ef..9c62d7f 100755
--- a/support/download/check-hash
+++ b/support/download/check-hash
@@ -9,6 +9,13 @@ set -e
 #   $3: the final basename of the file, to which it will be ultimately
 #       saved as, to be able to match it to the corresponding hashes
 #       in the .hash file
+# Exits with:
+#   0: the hash file exists and the file to check matches all its hashes,
+#      or the hash file does not exist
+#   1: the hash file exists and the file to check does not match at least
+#      of its hashes
+#   2: the hash file exists and there was no hash to check the file against
 while getopts :q OPT; do
     case "${OPT}" in
@@ -83,7 +90,7 @@ done <"${h_file}"
 if [ ${nb_checks} -eq 0 ]; then
     if [ -n "${BR2_ENFORCE_CHECK_HASH}" ]; then
         printf "ERROR: No hash found for %s\n" "${base}" >&2
-        exit 1
+        exit 2
         printf "WARNING: No hash found for %s\n" "${base}" >&2

More information about the buildroot mailing list