SOURCES: find-java-req.sh - scan also .class files - call `javadep...

glen glen at pld-linux.org
Tue Apr 10 23:36:02 CEST 2007


Author: glen                         Date: Tue Apr 10 21:36:02 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- scan also .class files
- call `javadeps` for class deps

---- Files affected:
SOURCES:
   find-java-req.sh (1.3 -> 1.4) 

---- Diffs:

================================================================
Index: SOURCES/find-java-req.sh
diff -u SOURCES/find-java-req.sh:1.3 SOURCES/find-java-req.sh:1.4
--- SOURCES/find-java-req.sh:1.3	Tue Apr 10 23:02:52 2007
+++ SOURCES/find-java-req.sh	Tue Apr 10 23:35:57 2007
@@ -3,9 +3,6 @@
 # information that needs to be included in the package.
 
 export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
-PATH=${PATH}:$(dirname $0)
-
-javadeps_args='--requires --rpmformat --keywords'
 
 IGNORE_DEPS="@"
 BUILDROOT="/"
@@ -51,25 +48,35 @@
 done
 
 javaclassversion() {
-	local file="$1"
+	local ver
+	classver=$(file "$@" | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
+	[ "$classver" ] || return
+	for v in $classver; do
+		echo "java(ClassDataVersion) >= $v"
+	done
+}
+
+javajarversion() {
+	local jar="$1"
 
 	# check only files, symlinks could point outside buildroot
-	[ -f "$file" -a ! -L "$file" ] || return
+	[ -f "$jar" -a ! -L "$jar" ] || return
 
 	tmp=$(mktemp -d)
-	unzip -q -d $tmp $file >&2
-	classver=$(find $tmp -type f -name '*.class' | xargs -r -d'\n' file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
+	unzip -q -d $tmp $jar >&2
+	javaclassversion $(find $tmp -type f -name '*.class')
 	rm -rf $tmp
-	[ "$classver" ] || return
-	for v in $classver; do
-		echo "java(ClassDataVersion) >= $v"
-	done
 }
 
 for file in $(cat -); do
 	case $file in
 	*.jar)
+		javajarversion "$file"
+		unzip -p $file | javadeps --requires --rpmformat --keywords -
+	;;
+	*.class)
 		javaclassversion "$file"
+		javadeps --requires --rpmformat --keywords $file
 	;;
 	esac
 done | sort -u | egrep -v \'$IGNORE_DEPS\'
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/find-java-req.sh?r1=1.3&r2=1.4&f=u



More information about the pld-cvs-commit mailing list