]> git.pld-linux.org Git - packages/rpm.git/commitdiff
- report errors
authorElan Ruusamäe <glen@pld-linux.org>
Tue, 18 Nov 2008 13:37:44 +0000 (13:37 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    rpm-java-requires -> 1.2

rpm-java-requires

index 40db41b61eda4be2125373f65f7e348c1ff3af4f..8c2a4720a10f106ea98065d1ac444c1024445821 100644 (file)
@@ -8,43 +8,60 @@
 export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
 
 javaclassversion() {
 export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
 
 javaclassversion() {
-       [ $# -gt 0 ] || return
+       [ $# -gt 0 ] || return 1
 
 
-       local ver
-       classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
-       [ "$classver" ] || return
+       local classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
+       if [ -z "$classver" ]; then
+               return 1
+       fi
+
+       local v
        for v in $classver; do
                echo "java(ClassDataVersion) >= $v"
        done
        for v in $classver; do
                echo "java(ClassDataVersion) >= $v"
        done
+       return 0
 }
 
 javajarversion() {
        local jar="$1"
 }
 
 javajarversion() {
        local jar="$1"
+       local ret=0
 
        # check only files, symlinks could point outside buildroot
 
        # check only files, symlinks could point outside buildroot
-       [ -f "$jar" -a ! -L "$jar" ] || return
-
-#      echo >&2 "find java requires: ${jar#$RPM_BUILD_ROOT}"
+       [ -f "$jar" -a ! -L "$jar" ] || return $ret
 
        tmp=$(mktemp -d)
        unzip -q -d $tmp $jar >&2
 
        tmp=$(mktemp -d)
        unzip -q -d $tmp $jar >&2
-       javaclassversion $(find $tmp -type f -name '*.class')
+       javaclassversion $(find $tmp -type f -name '*.class') || {
+               echo >&2 "ERROR: Class version could not be extracted from $jar"
+               ret=1
+       }
        rm -rf $tmp
        rm -rf $tmp
-}
 
 
-FILES=$(cat -)
+       return $ret
+}
 
 find_requires() {
 
 find_requires() {
+       local ret=0
        for file in $FILES; do
                case $file in
                *.jar)
        for file in $FILES; do
                case $file in
                *.jar)
-                       javajarversion "$file"
+                       javajarversion "$file" || ret=1
                ;;
                *.class)
                ;;
                *.class)
-                       javaclassversion "$file"
+                       javaclassversion "$file" || {
+                               echo >&2 "ERROR: Class version could not be extracted from $file"
+                               ret=1
+                       }
                ;;
                esac
        done
                ;;
                esac
        done
+       return $ret
 }
 
 }
 
-find_requires | sort -u
+FILES=$(cat -)
+
+t=$(mktemp)
+ret=0
+find_requires > $t || ret=1
+rm -f $t
+exit $ret
This page took 0.081615 seconds and 4 git commands to generate.