diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2015-12-18 10:37:51 +0100 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2015-12-18 11:11:56 +0100 | 
| commit | 85f55649a107e47a8103dd74f0bab7fde5bc6ec1 (patch) | |
| tree | 652573848868bbb883854c9a42c172aba1538daf /tools/fix_java | |
| parent | 16d3e7afeeac97797d1dcc017b0869ed4333c96e (diff) | |
| download | RustAndDust-85f55649a107e47a8103dd74f0bab7fde5bc6ec1.zip RustAndDust-85f55649a107e47a8103dd74f0bab7fde5bc6ec1.tar.gz | |
add tools/fix_java
Diffstat (limited to 'tools/fix_java')
| -rwxr-xr-x | tools/fix_java | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/tools/fix_java b/tools/fix_java new file mode 100755 index 0000000..52b80b8 --- /dev/null +++ b/tools/fix_java @@ -0,0 +1,56 @@ +#! /bin/bash + +if [ $# -lt 1 ]; then +    echo "missing PATH argument" +    exit 1 +fi + +TOPDIR=$1 + +RESET="\033[0m" +RED="\033[0;31m" +BROWN="\033[0;33m" +GREEN="\033[0;32m" + +cd $TOPDIR +while read file; do + +    # package +    FIX=0 +    CORRECT=$(echo $file | sed 's/\.\///; s/\/\+/\./g; s/\.\w\+.java//') + +    N=$(cat $file | sed -ne '/^\s*package/p' | wc -l) +    if [ $N -eq 0 ]; then +        echo -e "$file : $BROWN missing package directive.$RED fix!$RESET"; +        FIX=1 +    elif [ $N -gt 1 ]; then +        echo -e "$file : $BROWN more then 1 package directive.$RED fix!$RESET"; +        FIX=1 +    else +        PACKAGE=$(cat $file | sed -ne '/^\s*package/ { s/^\s*package\s*//; s/\s*;\s*$//; p; q }') +        if [ "$PACKAGE" != "$CORRECT" ]; then +            echo -e "$file : $BROWN wrong package directive.$RED fix!$RESET"; +            FIX=1 +        fi +    fi + +    if [ $FIX -eq 1 ]; then +        sed -i '/^\s*package/d' $file +        sed -i "1ipackage $CORRECT;" $file +    fi + +    # import +    IMPORTS=$(cat $file | sed -ne '/^\s*import/ {s/.*\.//;s/;//p}') +    for class in $IMPORTS; do +        N=$(cat $file | sed -ne "/import/b; /[^a-zA-Z]$class/ { /$class[^a-zA-Z]/p; /$class\s*$/p}" | wc -l) +        if [ $N -eq 0 ]; then +            RET=1 +            echo -e "$file : $BROWN useless import $class $RED fix $RESET"; +            sed -i "/^\s*import.*\.$class;/d" $file +        fi +    done + +    # double empty lines +    sed -i '/^$/N;/^\n$/D' $file + +done < <(find . -name "*.java") | 
