]> git.pld-linux.org Git - packages/rpm.git/blobdiff - find-java-req.sh
- Th version, based on find-java-req.sh:AC-branch
[packages/rpm.git] / find-java-req.sh
index 5a9b4457c195bc238a5842310ad43f7679f761af..6d6106fb485c7aebbbe8bb1c950939df6a3ddac9 100755 (executable)
@@ -1,75 +1,50 @@
 #!/bin/sh
-# This script reads filenames from STDIN and outputs any relevant provides
+# This script reads filenames from STDIN and outputs any relevant requires
 # information that needs to be included in the package.
+#
+# Based on rpm-4.4.2/scripts/find-req.pl
+# Authors: Elan Ruusamäe <glen@pld-linux.org>
 
 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
+javaclassversion() {
+       [ $# -gt 0 ] || return
 
-       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
+       local ver
+       classver=$(echo "$@" | xargs -r 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
+}
 
-javaclassversion() {
-       local file="$1"
+javajarversion() {
+       local jar="$1"
 
        # check only files, symlinks could point outside buildroot
-       [ -f "$file" -a ! -L "$file" ] || return
+       [ -f "$jar" -a ! -L "$jar" ] || return
+
+#      echo >&2 "find java requires: ${jar#$RPM_BUILD_ROOT}"
 
        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"
+}
+
+FILES=$(cat -)
+
+find_requires() {
+       for file in $FILES; do
+               case $file in
+               *.jar)
+                       javajarversion "$file"
+               ;;
+               *.class)
+                       javaclassversion "$file"
+               ;;
+               esac
        done
 }
 
-for file in $(cat -); do
-       case $file in
-       *.jar)
-               javaclassversion "$file"
-       ;;
-       esac
-done | sort -u | egrep -v \'$IGNORE_DEPS\'
+find_requires | sort -u
This page took 0.035747 seconds and 4 git commands to generate.