#! /bin/bash
#------------------------------------------------------------------------------
#$Author: saulius $
#$Date: 2017-11-23 16:18:17 +0200 (Thu, 23 Nov 2017) $
#$Revision: 3870 $
#$URL: svn+ssh://saulius-grazulis.lt/home/saulius/svn-repositories/paskaitos/VU/software/trunk/assignment-evaluation/scripts/do-check--executable-files $
#------------------------------------------------------------------------------
#*
# Check that executable files outside the "test/" hierarchy do NOT
# have .pl extension.
#**

set -ue
## set -x

DIRECTORY="$1"

EXT=pl

ID='$Id: do-check--executable-files 3870 2017-11-23 14:18:17Z saulius $'

cd "${DIRECTORY}"

ALLOWED_DIRS="bin scripts"

SUBDIRS=''

for DIR in ${ALLOWED_DIRS}
do
    FOUND_DIRS="$(find -name $DIR \
        | while read FOUND_DIR
        do
            echo \"${FOUND_DIR}\"
        done
    )"
    test -n "$FOUND_DIRS" && SUBDIRS="$SUBDIRS $FOUND_DIRS"
done

## echo $0: SUBDIRS=$SUBDIRS >&2

FIND_CMD="find . $SUBDIRS -maxdepth 2 \
             -name .svn -prune -o \
             -name .git -prune -o \
             -perm /111 -name \"*.${EXT}\" \
             -print \
          | sort \
          | grep -v 'test/'
"

COUNT=$(eval ${FIND_CMD} | wc -l)

## echo $0: COUNT=$COUNT >&2

if [ $COUNT -gt 0 ]
then
    
cat <<EOF
-- [AUTO;INTERFACE;$(echo $ID | sed 's/\$//g')]

   Jūsų projekto programai NEREIKALINGAS plėtinys '${EXT}', bet
   vykdomi failai: '$(eval ${FIND_CMD} | tr "\n" " " | sed 's/ *$//')'
   jį turi (-10 balų); mūsų projektuose failai su plėtiniais
   gali būti tik test/ submedyje.

EOF

fi
