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