Colin Cross | 8eadbf0 | 2017-10-24 17:46:00 -0700 | [diff] [blame] | 1 | #!/bin/bash -e |
| 2 | |
| 3 | # Extracts .java files from source jars in a specified directory and writes out a list of the files |
| 4 | |
| 5 | if [ -z "$1" -o -z "$2" ]; then |
| 6 | echo "usage: $0 <output dir> <output file> [<jar> ...]" >&2 |
| 7 | exit 1 |
| 8 | fi |
| 9 | |
| 10 | output_dir=$1 |
| 11 | shift |
| 12 | output_file=$1 |
| 13 | shift |
| 14 | |
| 15 | rm -f $output_file |
| 16 | touch $output_file |
| 17 | |
| 18 | for j in "$@"; do |
| 19 | for f in $(zipinfo -1 $j '*.java'); do |
| 20 | echo $output_dir/$f >> $output_file |
| 21 | done |
| 22 | unzip -qn -d $output_dir $j '*.java' |
| 23 | done |
| 24 | |
| 25 | duplicates=$(cat $output_file | sort | uniq -d | uniq) |
| 26 | if [ -n "$duplicates" ]; then |
| 27 | echo Duplicate source files: |
| 28 | echo $duplicates |
| 29 | exit 1 |
| 30 | fi |