forked from pool/build-compare
- Remove usage of readarray to remain compatible with bash3
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/build-compare?expand=0&rev=277
This commit is contained in:
parent
8908bc34d3
commit
6e953eae7c
@ -1,3 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri May 29 19:20:21 UTC 2020 - olaf@aepfle.de
|
||||
|
||||
- Remove usage of readarray to remain compatible with bash3
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 29 07:30:51 UTC 2020 - olaf@aepfle.de
|
||||
|
||||
|
@ -21,7 +21,7 @@ Summary: Build Result Compare Script
|
||||
License: GPL-2.0+
|
||||
Group: Development/Tools/Building
|
||||
Url: https://github.com/openSUSE/build-compare
|
||||
Version: 20200529T185052.7a95d20
|
||||
Version: 20200529T212652.102d844
|
||||
Release: 0
|
||||
Source1: COPYING
|
||||
Source2: same-build-result.sh
|
||||
|
13
functions.sh
13
functions.sh
@ -276,7 +276,7 @@ function set_regex() {
|
||||
# 0 in case of same content
|
||||
# 1 in case of errors or difference
|
||||
# 2 in case of differences that need further investigation
|
||||
# Sets $files with list of files that need further investigation
|
||||
# Sets ${files[@]} array with list of files that need further investigation
|
||||
function cmp_rpm_meta ()
|
||||
{
|
||||
local RES
|
||||
@ -366,14 +366,19 @@ function cmp_rpm_meta ()
|
||||
get_value QF_CHECKSUM $rpm_meta_new | grep -v " 64$" | trim_release_new > $file2
|
||||
RES=2
|
||||
# done if the same
|
||||
files=()
|
||||
echo "comparing file checksum"
|
||||
if cmp -s $file1 $file2; then
|
||||
RES=0
|
||||
else
|
||||
# Get only files with different MD5sums
|
||||
while read
|
||||
do
|
||||
: "${REPLY}"
|
||||
files+=( "${REPLY}" )
|
||||
done < <(diff -U0 $file1 $file2 | sed -E -n -e '/^-\//{s/^-//;s/ [0-9a-f]+ [0-9]+$//;p}')
|
||||
fi
|
||||
|
||||
# Get only files with different MD5sums
|
||||
files=`diff -U0 $file1 $file2 | fgrep -v +++ | grep ^+ | cut -b2- | sed -E -e 's/ [0-9a-f]+ [0-9]+$//'`
|
||||
|
||||
if test -n "$sh"; then
|
||||
echo "creating rename script"
|
||||
# Create a temporary helper script to rename files/dirs with release in it
|
||||
|
31
pkg-diff.sh
31
pkg-diff.sh
@ -761,6 +761,7 @@ compare_archive()
|
||||
local f
|
||||
local -a content
|
||||
local -i ret=1
|
||||
local -a filelist
|
||||
|
||||
"${handler}" 'f' "${file}" || return 1
|
||||
|
||||
@ -783,8 +784,12 @@ compare_archive()
|
||||
"${handler}" 'x' "${new}" || return 1
|
||||
popd > /dev/null
|
||||
fi
|
||||
readarray -t content < 'cn'
|
||||
for f in "${content[@]}"
|
||||
while read
|
||||
do
|
||||
: "${REPLY}"
|
||||
filelist+=( "${REPLY}" )
|
||||
done < 'cn'
|
||||
for f in "${filelist[@]}"
|
||||
do
|
||||
if ! check_single_file "${file}/${f}"
|
||||
then
|
||||
@ -1157,6 +1162,10 @@ fi
|
||||
echo "Comparing `basename $oldpkg` to `basename $newpkg`"
|
||||
|
||||
case $oldpkg in
|
||||
*.deb|*.ipk)
|
||||
: cmp_deb_meta missing
|
||||
RES=0
|
||||
;;
|
||||
*.rpm)
|
||||
cmp_rpm_meta "$rename_script" "$oldpkg" "$newpkg"
|
||||
RES=$?
|
||||
@ -1192,18 +1201,15 @@ unpackage $newpkg $dir/new
|
||||
case $oldpkg in
|
||||
*.deb|*.ipk)
|
||||
adjust_controlfile $dir/old $dir/new
|
||||
files=()
|
||||
while read
|
||||
do
|
||||
: "${REPLY}"
|
||||
files+=( "${REPLY}" )
|
||||
done < <(cd ${dir} ; find old new -type f | sed -e 's/^...//' | sort -u)
|
||||
;;
|
||||
esac
|
||||
|
||||
# files is set in cmp_rpm_meta for rpms, so if RES is empty we should assume
|
||||
# it wasn't an rpm and pick all files for comparison.
|
||||
if [ -z $RES ]; then
|
||||
oldfiles=`cd $dir/old; find . -type f`
|
||||
newfiles=`cd $dir/new; find . -type f`
|
||||
|
||||
files=`echo -e "$oldfiles\n$newfiles" | sort -u`
|
||||
fi
|
||||
|
||||
cd $dir
|
||||
bash $rename_script
|
||||
|
||||
@ -1218,8 +1224,7 @@ fi
|
||||
|
||||
# preserve cmp_rpm_meta result for check_all runs
|
||||
ret=$RES
|
||||
readarray -t filesarray <<<"$files"
|
||||
for file in "${filesarray[@]}"; do
|
||||
for file in "${files[@]}"; do
|
||||
if ! check_single_file "$file"; then
|
||||
ret=1
|
||||
if test -z "$check_all"; then
|
||||
|
@ -87,7 +87,7 @@ check_single_file()
|
||||
}
|
||||
|
||||
ret=0
|
||||
for file in $files; do
|
||||
for file in "${files[@]}"; do
|
||||
if ! check_single_file $file; then
|
||||
ret=1
|
||||
if test -z "$check_all"; then
|
||||
|
Loading…
Reference in New Issue
Block a user