]> git.pld-linux.org Git - packages/rpm.git/commitdiff
- workflow to process also provides
authorElan Ruusamäe <glen@pld-linux.org>
Fri, 12 Nov 2010 12:10:00 +0000 (12:10 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    rpm-java-requires -> 1.9

rpm-java-requires

index 675e2057782aa01901be18060bea5576fd2066d3..df592dff7732c9489e126f19d9bccae474b5b3e7 100644 (file)
@@ -7,16 +7,20 @@
 
 export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
 
+# Enable debug: JAVADEPS_DEBUG=true
+: ${JAVADEPS_DEBUG=false}
+
 # save $- state, to enable in functions
 debug=$-
 
-# enable debug: FIND_JAVAREQ_DEBUG=true
-FIND_JAVAREQ_DEBUG=${FIND_JAVAREQ_DEBUG:-false}
-
 javaclassversion() {
        set -$debug
+       local mode=$1; shift
        [ $# -gt 0 ] || return 1
-       $FIND_JAVAREQ_DEBUG && echo >&2 ">> class: $*"
+       $JAVADEPS_DEBUG && echo >&2 ">> javaclassversion($mode): $*"
+
+       # process only requires
+       [ "$mode" = requires ] || return $ret
 
        local classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
        if [ -z "$classver" ]; then
@@ -25,16 +29,17 @@ javaclassversion() {
 
        local v
        for v in $classver; do
-               echo "java(ClassDataVersion) >= $v"
+               echo "$mode: java(ClassDataVersion) >= $v"
        done
        return 0
 }
 
 javajarversion() {
        set -$debug
-       local jar="$1"
+       local mode=$1; shift
+       local jar=$1
        local tmp ret=0
-       $FIND_JAVAREQ_DEBUG && echo >&2 ">> jar: $jar"
+       $JAVADEPS_DEBUG && echo >&2 ">> javajarversion($mode): $jar"
 
        # check only files, symlinks could point outside buildroot
        [ -f "$jar" -a ! -L "$jar" ] || return $ret
@@ -45,38 +50,53 @@ javajarversion() {
        chmod -R u+rwX $tmp
 
        # find .jar and .class files
-       find_requires $(find $tmp -type f -regextype posix-extended -regex '^.+\.(class|jar)$') || ret=1
+       find_javadeps $mode $(find $tmp -type f -regextype posix-extended  -regex '^.+\.(class|jar)$') || ret=1
        rm -rf $tmp
        return $ret
 }
 
-find_requires() {
+find_javadeps() {
        set -$debug
+       local mode=$1; shift
        local ret=0
 
-       $FIND_JAVAREQ_DEBUG && echo >&2 ">> find_requires: $*"
+       $JAVADEPS_DEBUG && echo >&2 ">> find_javadeps($mode): $*"
        for file in $@; do
                case $file in
                *.jar)
-                       javajarversion "$file" || ret=1
+                       javajarversion $mode "$file" || ret=1
                ;;
                *.class)
-                       javaclassversion "$file" || {
+                       javaclassversion $mode "$file" || {
                                echo >&2 "ERROR: Class version could not be extracted from $file"
                                ret=1
                        }
                ;;
                *)
-                       $FIND_JAVAREQ_DEBUG && echo >&2 ">> find_requires: no handle: $file"
+                       $JAVADEPS_DEBUG && echo >&2 ">> find_javadeps($mode): no handle: $file"
                ;;
                esac
        done
        return $ret
 }
 
-t=$(mktemp)
 ret=0
-find_requires $(cat -) > $t || ret=1
+# default mode to requires for backward compat
+mode=requires
+case $1 in
+-P|--provides)
+       mode=provides
+       shift
+       ;;
+-R|--requires)
+       mode=requires
+       shift
+       ;;
+esac
+
+t=$(mktemp)
+find_javadeps $mode $(cat -) > $t || ret=1
 sort -u $t
 rm -f $t
+
 exit $ret
This page took 0.036345 seconds and 4 git commands to generate.