From 48d8fed6fa7eaa69189b1d0ef286bdc590007904 Mon Sep 17 00:00:00 2001 From: Jan Rękorajski Date: Sat, 22 Sep 2012 19:40:56 +0000 Subject: - wrap separate calls and loops into single pipe in pkg2src Changed files: wwwbin/consistency-check.sh -> 1.15 diff --git a/wwwbin/consistency-check.sh b/wwwbin/consistency-check.sh index ddee3ca..b77671c 100644 --- a/wwwbin/consistency-check.sh +++ b/wwwbin/consistency-check.sh @@ -22,34 +22,18 @@ group_deps() { # uses poldek pkg2src() { local t=$(mktemp) - local t1=$(mktemp) - local t2=$(mktemp) local t3=$(mktemp) # save input cat > $t - # create list of packages from error report + # create list of N-V-R.A.rpm -> src-N pairs from error report # error: arcconf-7.0.18786-1: req libstdc++.so.5()(64bit) not found - sed -ne 's/error: \(.*\): req .* not found/\1/p' $t | sort -u > $t1 - - # create list of package -> src.rpm names - poldek --noignore -Q "$@" --cmd ls -q -s > $t2 - - # create N-V-R -> N list - local pkg error message srpm out - while read pkg; do - pkg=$(echo "$pkg" | sed -e 's,+,\\+,g') - - # there's no space between the columns, so need to match with known archs - # see https://bugs.launchpad.net/poldek/+bug/1031767 - out=$(sed -rne "s/^($pkg)\.(x86_64|i686|noarch)(.+)-[^-]+-[^-]+\.src\.rpm$/\1\t\3/p" $t2) - if [ -z "$out" ]; then - echo >&2 "nvr: No match for [$pkg]" - fi - echo "$out" - done < $t1 > $t3 + sed -ne 's/error: \(.*\): req .* not found/\1/p' $t | sort -u | \ + xargs -d '\n' poldek --noignore -Q "$@" --cmd ls -q -s | \ + sed -rne "s/^([^\t ]+)[\t ]+(.+)-[^-]+-[^-]+\.src\.rpm$/\1\t\2/p" >$t3 + local pkg error message srpm while read error pkg message; do # error: arcconf-7.0.18786-1: req libstdc++.so.5()(64bit) not found srpm=$(awk -vpkg="${pkg%:}" '$1 == pkg {printf("%s.spec", $2)}' $t3) @@ -59,7 +43,7 @@ pkg2src() { echo "$error [$srpm] $pkg $message" done < $t - rm -f $t $t1 $t2 $t3 + rm -f $t $t3 } gen_list() { -- cgit v0.10.2