SOURCES: rpm-java-requires - report errors

glen glen at pld-linux.org
Tue Nov 18 14:37:50 CET 2008


Author: glen                         Date: Tue Nov 18 13:37:50 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- report errors

---- Files affected:
SOURCES:
   rpm-java-requires (1.1 -> 1.2) 

---- Diffs:

================================================================
Index: SOURCES/rpm-java-requires
diff -u SOURCES/rpm-java-requires:1.1 SOURCES/rpm-java-requires:1.2
--- SOURCES/rpm-java-requires:1.1	Tue May 22 21:59:27 2007
+++ SOURCES/rpm-java-requires	Tue Nov 18 14:37:44 2008
@@ -8,43 +8,60 @@
 export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
 
 javaclassversion() {
-	[ $# -gt 0 ] || return
+	[ $# -gt 0 ] || return 1
 
-	local ver
-	classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
-	[ "$classver" ] || return
+	local classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
+	if [ -z "$classver" ]; then
+		return 1
+	fi
+
+	local v
 	for v in $classver; do
 		echo "java(ClassDataVersion) >= $v"
 	done
+	return 0
 }
 
 javajarversion() {
 	local jar="$1"
+	local ret=0
 
 	# check only files, symlinks could point outside buildroot
-	[ -f "$jar" -a ! -L "$jar" ] || return
-
-#	echo >&2 "find java requires: ${jar#$RPM_BUILD_ROOT}"
+	[ -f "$jar" -a ! -L "$jar" ] || return $ret
 
 	tmp=$(mktemp -d)
 	unzip -q -d $tmp $jar >&2
-	javaclassversion $(find $tmp -type f -name '*.class')
+	javaclassversion $(find $tmp -type f -name '*.class') || {
+		echo >&2 "ERROR: Class version could not be extracted from $jar"
+		ret=1
+	}
 	rm -rf $tmp
-}
 
-FILES=$(cat -)
+	return $ret
+}
 
 find_requires() {
+	local ret=0
 	for file in $FILES; do
 		case $file in
 		*.jar)
-			javajarversion "$file"
+			javajarversion "$file" || ret=1
 		;;
 		*.class)
-			javaclassversion "$file"
+			javaclassversion "$file" || {
+				echo >&2 "ERROR: Class version could not be extracted from $file"
+				ret=1
+			}
 		;;
 		esac
 	done
+	return $ret
 }
 
-find_requires | sort -u
+FILES=$(cat -)
+
+t=$(mktemp)
+ret=0
+find_requires > $t || ret=1
+rm -f $t
+exit $ret
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/rpm-java-requires?r1=1.1&r2=1.2&f=u



More information about the pld-cvs-commit mailing list