Forráskód Böngészése

support/download/check-hash: fix shellcheck errors

The hash files do not use trailing backslash \ to continue lines, so
we don't want them to be interpreted thusly, so we use 'read -r'
(SC2162).

The h_file is used twice in the same loop, once for reading from it,
and once just to print it, so there is no conflict (SC2094).

Integrer variables need not be quoted (SC2086). In any case, should
there be an actual issue and they be set empty, that would cause a
runtime issue, wether they be quoted or not.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Yann E. MORIN 1 éve
szülő
commit
9cb421c16f
2 módosított fájl, 6 hozzáadás és 3 törlés
  1. 0 1
      .checkpackageignore
  2. 6 2
      support/download/check-hash

+ 0 - 1
.checkpackageignore

@@ -1434,7 +1434,6 @@ support/dependencies/check-host-xzcat.sh Shellcheck
 support/dependencies/dependencies.sh Shellcheck
 support/dependencies/dependencies.sh Shellcheck
 support/download/bzr ConsecutiveEmptyLines Shellcheck
 support/download/bzr ConsecutiveEmptyLines Shellcheck
 support/download/cargo-post-process Shellcheck
 support/download/cargo-post-process Shellcheck
-support/download/check-hash Shellcheck
 support/download/cvs Shellcheck
 support/download/cvs Shellcheck
 support/download/dl-wrapper Shellcheck
 support/download/dl-wrapper Shellcheck
 support/download/file Shellcheck
 support/download/file Shellcheck

+ 6 - 2
support/download/check-hash

@@ -57,7 +57,7 @@ check_one_hash() {
     esac
     esac
 
 
     # Do the hashes match?
     # Do the hashes match?
-    _hash=$( ${_h}sum "${_file}" |cut -d ' ' -f 1 )
+    _hash="$( "${_h}sum" "${_file}" |cut -d ' ' -f 1 )"
     if [ "${_hash}" = "${_known}" ]; then
     if [ "${_hash}" = "${_known}" ]; then
         printf "%s: OK (%s: %s)\n" "${base}" "${_h}" "${_hash}"
         printf "%s: OK (%s: %s)\n" "${base}" "${_h}" "${_hash}"
         return 0
         return 0
@@ -78,7 +78,8 @@ nb_checks=0
 for h_file in "${h_files[@]}"; do
 for h_file in "${h_files[@]}"; do
     [ -f "${h_file}" ] || continue
     [ -f "${h_file}" ] || continue
     : $((nb_h_files++))
     : $((nb_h_files++))
-    while read t h f; do
+    # shellcheck disable=SC2094  # we're really reading it only once
+    while read -r t h f; do
         case "${t}" in
         case "${t}" in
             ''|'#'*)
             ''|'#'*)
                 # Skip comments and empty lines
                 # Skip comments and empty lines
@@ -86,6 +87,7 @@ for h_file in "${h_files[@]}"; do
                 ;;
                 ;;
             *)
             *)
                 if [ "${f}" = "${base}" ]; then
                 if [ "${f}" = "${base}" ]; then
+                    # shellcheck disable=SC2094  # we're only printing the h_file filename
                     check_one_hash "${t}" "${h}" "${file}" "${h_file}"
                     check_one_hash "${t}" "${h}" "${file}" "${h_file}"
                     : $((nb_checks++))
                     : $((nb_checks++))
                 fi
                 fi
@@ -94,11 +96,13 @@ for h_file in "${h_files[@]}"; do
     done <"${h_file}"
     done <"${h_file}"
 done
 done
 
 
+# shellcheck disable=SC2086  # nb_h_files is a non-empty int
 if [ ${nb_h_files} -eq 0 ]; then
 if [ ${nb_h_files} -eq 0 ]; then
     printf "WARNING: no hash file for %s\n" "${base}" >&2
     printf "WARNING: no hash file for %s\n" "${base}" >&2
     exit 0
     exit 0
 fi
 fi
 
 
+# shellcheck disable=SC2086  # nb_checks is a non-empty int
 if [ ${nb_checks} -eq 0 ]; then
 if [ ${nb_checks} -eq 0 ]; then
     case " ${BR_NO_CHECK_HASH_FOR} " in
     case " ${BR_NO_CHECK_HASH_FOR} " in
     *" ${base} "*)
     *" ${base} "*)