#! /bin/bash
#------------------------------------------------------------------------------
#$Author: saulius $
#$Date: 2021-04-06 06:54:18 +0000 (Tue, 06 Apr 2021) $
#$Revision: 8878 $
#$URL: file:///home/saulius/svn-repositories/paskaitos/VU/software/assignment-evaluation/trunk/scripts/do-check--executable-files $
#------------------------------------------------------------------------------
#*
# Check that the project has an executable file.
#**

set -ue
## set -x

DIRECTORY="$1"

ID='$Id: do-check--executable-files 8878 2021-04-06 06:54:18Z saulius $'

cd "${DIRECTORY}"

ALLOWED_DIRS="bin scripts trunk branches"

SUBDIRS=''

TEST_DIRS="test tests testai tools"

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 \
             -type f -perm /111 \
             -print \
          | grep -vE '('\"$(echo "${TEST_DIRS}" | tr " " "|")\"')/' \
"

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

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

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

   Jūsų projekto programa ar skriptas turi būti vykdomas visiems
   naudotojams, ir turi būti arba Jūsų projekto šaknyje, arba vienoje
   iš šių subdirektorijų: $ALLOWED_DIRS. Taip pat šis failas neturi
   būti testų direktorijose ${TEST_DIRS}. Toks failas neaptiktas (-10
   balų);

EOF

fi
