#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
RULESET=${RULESET:='ruleset.xml'}
EXTENSIONS=${EXTENSIONS:='php,php3,php4,php5,phtml,phpt'}
EXCLUDE_FOLDERS=${EXCLUDE_FOLDERS:='*/temp,*/tmp'}
FOLDERS=()

# Take default ninjify ruleset, if relative ruleset.xml is not present
if [ -f ${DIR}/../ninjify/coding-standard/${RULESET} ]; then
    RULESET=${DIR}/../ninjify/coding-standard/${RULESET}
elif [ -f ${DIR}/../ninjify/coding-standard/ruleset-${RULESET}.xml ]; then
    RULESET=${DIR}/../ninjify/coding-standard/ruleset-${RULESET}.xml
elif [ ! -f ${RULESET} ]; then
    RULESET=${DIR}/../ninjify/coding-standard/ruleset.xml
fi

# Show installed coding standards
${DIR}/phpcs -i

# Run fixing
if [ -z "$1" ]; then
    # Run codefixer with default args
    [ -d "app" ] && FOLDERS+=('app')
    [ -d "src" ] && FOLDERS+=('src')
    [ -d "tests" ] && FOLDERS+=('tests')
    ${DIR}/phpcbf --standard="${RULESET}" --ignore="${EXCLUDE_FOLDERS}" --extensions="${EXTENSIONS}" --colors --encoding=utf-8 --no-patch -nsp ${FOLDERS[*]}
else
    # Run codefixer
    ${DIR}/phpcbf --standard="${RULESET}" --ignore="${EXCLUDE_FOLDERS}" --extensions="${EXTENSIONS}" --colors --encoding=utf-8 --no-patch -nsp $@
fi
