pld-ftp-admin: wwwbin/consistency-check.sh - wrap separate calls and loops ...

baggins baggins at pld-linux.org
Sat Sep 22 21:41:02 CEST 2012


Author: baggins                      Date: Sat Sep 22 19:41:02 2012 GMT
Module: pld-ftp-admin                 Tag: HEAD
---- Log message:
- wrap separate calls and loops into single pipe in pkg2src

---- Files affected:
pld-ftp-admin/wwwbin:
   consistency-check.sh (1.14 -> 1.15) 

---- Diffs:

================================================================
Index: pld-ftp-admin/wwwbin/consistency-check.sh
diff -u pld-ftp-admin/wwwbin/consistency-check.sh:1.14 pld-ftp-admin/wwwbin/consistency-check.sh:1.15
--- pld-ftp-admin/wwwbin/consistency-check.sh:1.14	Thu Aug  9 11:14:11 2012
+++ pld-ftp-admin/wwwbin/consistency-check.sh	Sat Sep 22 21:40:56 2012
@@ -22,34 +22,18 @@
 # 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 @@
 		echo "$error [$srpm] $pkg $message"
 	done < $t
 
-	rm -f $t $t1 $t2 $t3
+	rm -f $t $t3
 }
 
 gen_list() {
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/pld-ftp-admin/wwwbin/consistency-check.sh?r1=1.14&r2=1.15



More information about the pld-cvs-commit mailing list