]> git.pld-linux.org Git - packages/rpm.git/commitdiff
- skip symlinks and inexistent files
authorElan Ruusamäe <glen@pld-linux.org>
Tue, 10 Apr 2007 18:34:13 +0000 (18:34 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- scan only files
- allow multiple class version in one run

Changed files:
    find-java-req.sh -> 1.2

find-java-req.sh

index 7cdecf33a3e371edd031bbb3b23b4224cd93177d..539af004c4fbb606ea017bf2bf8721fbe7bac24b 100755 (executable)
@@ -8,7 +8,7 @@ PATH=${PATH}:$(dirname $0)
 javadeps_args='--requires --rpmformat --keywords'
 
 IGNORE_DEPS="@"
-BUILDROOT="/" 
+BUILDROOT="/"
 
 # Loop over all args
 while :; do
@@ -53,18 +53,23 @@ done
 javaclassversion() {
        local file="$1"
 
+       # check only files, symlinks could point outside buildroot
+       [ ! -f "$file" -o -L "$file" ] || return
+
        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)
+       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)
        rm -rf $tmp
        [ "$classver" ] || return
-       echo "java(ClassDataVersion) >= $classver"
+       for v in $classver; do
+               echo "java(ClassDataVersion) >= $v"
+       done
 }
 
 for file in $(cat -); do
-       case $file in 
+       case $file in
        *.jar)
-               javaclassversion $file
+               javaclassversion "$file"
        ;;
        esac
 done | sort -u | egrep -v \'$IGNORE_DEPS\'
This page took 0.034773 seconds and 4 git commands to generate.