]> git.pld-linux.org Git - projects/pld-ftp-admin.git/commitdiff
- wrap separate calls and loops into single pipe in pkg2src
authorJan Rękorajski <baggins@pld-linux.org>
Sat, 22 Sep 2012 19:40:56 +0000 (19:40 +0000)
committerJan Rękorajski <baggins@pld-linux.org>
Sat, 22 Sep 2012 19:40:56 +0000 (19:40 +0000)
Changed files:
    wwwbin/consistency-check.sh -> 1.15

wwwbin/consistency-check.sh

index ddee3ca9d061500c8fef4e390077a1b802edb2e7..b77671c0c6a549152538a9c840475c3f3d456402 100644 (file)
@@ -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() {
This page took 0.028798 seconds and 4 git commands to generate.