SOURCES: find-java-req.sh (NEW) - find maximum class version used ...

glen glen at pld-linux.org
Wed Apr 4 12:45:03 CEST 2007


Author: glen                         Date: Wed Apr  4 10:45:03 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- find maximum class version used in jars

---- Files affected:
SOURCES:
   find-java-req.sh (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/find-java-req.sh
diff -u /dev/null SOURCES/find-java-req.sh:1.1
--- /dev/null	Wed Apr  4 12:45:03 2007
+++ SOURCES/find-java-req.sh	Wed Apr  4 12:44:58 2007
@@ -0,0 +1,70 @@
+#!/bin/sh
+# This script reads filenames from STDIN and outputs any relevant provides
+# 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="/" 
+
+# Loop over all args
+while :; do
+# Break out if there are no more args
+	case $# in
+	0)
+		break
+		;;
+	esac
+
+# Get the first arg, and shuffle
+	option=$1
+	shift
+
+# Make all options have two hyphens
+	orig_option=$option	# Save original for error messages
+	case $option in
+	--*) ;;
+	-*) option=-$option ;;
+	esac
+
+	case $option in
+	--buildroot)
+		BUILDROOT=$1
+		shift
+		;;
+	--ignore_deps)
+		IGNORE_DEPS=$1
+		shift
+		;;
+	--help)
+		echo $usage
+		exit 0
+		;;
+	*)
+		echo "$0: Unrecognized option: \"$orig_option\"; use --help for usage." >&2
+		exit 1
+		;;
+	esac
+done
+
+javaclassversion() {
+	local file="$1"
+
+	tmp=$(mktemp -d)
+	unzip -q -d $tmp $file >&2
+	classver=$(find $tmp -name '*.class' | xargs file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
+	rm -rf $tmp
+	[ "$classver" ] || return
+	echo "java(ClassDataVersion) >= $classver"
+}
+
+for file in $(cat -); do
+	case $file in 
+	*.jar)
+		javaclassversion $file
+	;;
+	esac
+done | sort -u | egrep -v \'$IGNORE_DEPS\'
================================================================


More information about the pld-cvs-commit mailing list