support/check-bin-arch: fix for filenames with spaces

Filenames with spaces will break the current for loop.

Fix that by using a while-read loop, fed with the list of files on
stdin, using process substitution.

Reported-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Yann E. MORIN 2017-03-21 20:01:25 +01:00 committed by Peter Korsgaard
parent b60757d9da
commit 2f6c5e513c

View File

@ -18,9 +18,11 @@ fi
exitcode=0
pkg_files=$(sed -r -e "/^${package},(.+)$/!d; s//\1/;" ${pkg_list})
# Only split on new lines, for filenames-with-spaces
IFS="
"
for f in ${pkg_files} ; do
while read f; do
# Skip firmware files, they could be ELF files for other
# architectures
if [[ "${f}" =~ ^\./(usr/)?lib/firmware/.* ]]; then
@ -43,10 +45,10 @@ for f in ${pkg_files} ; do
continue
fi
printf 'ERROR: architecture for %s is %s, should be %s\n' \
printf 'ERROR: architecture for "%s" is "%s", should be "%s"\n' \
"${f}" "${arch}" "${arch_name}"
exitcode=1
done
done < <( sed -r -e "/^${package},\.(.+)$/!d; s//\1/;" ${pkg_list} )
exit ${exitcode}