#! /bin/bash

# major  minor Java platform version 
# 45       3           1.0
# 45       3           1.1
# 46       0           1.2
# 47       0           1.3
# 48       0           1.4
# 49       0           1.5
# 50       0           1.6


# e.g., ANT_OPTS = -Dant.build.javac.source=1.4

check_version()
{
    :
}

dir=$(pwd)

for i in "$@"; do
    case "$i" in
    *.class)
        :
	path=$(dirname "${i#./*}")
	base=$(basename "$i" .class)
	v=$(javap -classpath "$path" -verbose "$base" \
	    | awk '/^  major version/ {print $3}')
	#echo "$jarname $path/$base.class $v"
	echo "$i $v"
        ;;
    *.jar)
	:
	case "$i" in /*) jar=$i;; *) jar=$dir/$i; esac
	jarname=$(basename $jar)
	tmpdir=$(mktemp -d)
	pushd $tmpdir >/dev/null
	jar xf $jar
	find -name '*.class' | while read class; do
	    path=$(dirname "${class#./*}")
	    base=$(basename "$class" .class)
	    v=$(javap -classpath "$path" -verbose "$base" \
		| awk '/^  major version/ {print $3}')
	    #echo "$jarname $path/$base.class $v"
	    echo "$jarname $v"
	done | sort -u
	popd >/dev/null
	rm -rf $tmpdir
	;;
    *)
	echo "unknown file: $i"
    esac
done
