summaryrefslogtreecommitdiffstats
path: root/check_java_packages
blob: f90e520f7af28fee32e15eb32cb554f1232bc98a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#! /bin/bash

if [ $# -lt 1 ]; then
    echo "missing PATH argument"
    exit 1
fi

TOPDIR=$1
ERRORS=.check_package.err

RESET="\033[0m"
RED="\033[0;31m"
BROWN="\033[0;33m"
GREEN="\033[0;32m"

cd $TOPDIR
find . -name *.java | while read file; do
    CORRECT=$(echo $file | sed 's/\.\///; s/\/\+/\./g; s/\.\w\+.java//')
    N=$(cat $file | grep package | wc -l)
    if [ $N -gt 1 ]; then
        echo -e "$file : $BROWN more then 1 package directive$RESET";
        touch $ERRORS
        continue
    fi
    PACKAGE=$(cat $file | grep package)
    if [ -z "$PACKAGE" ]; then
        echo -e "$file : $BROWN missing package directive$RESET";
        touch $ERRORS
        continue
    fi
    PACKAGE=$(echo "$PACKAGE" | sed 's/ *package *//; s/ *; *$//;')
    if [ "$PACKAGE" != "${CORRECT}" ]; then
        echo -e "$file : $RED$PACKAGE$RESET -> $GREEN$CORRECT$RESET";
        touch $ERRORS
    fi
done

if [ -r "$ERRORS" ]; then
    rm $ERRORS
    exit 1
fi