#!/bin/bash

set -e

is_module() {
    if [ "$module" = "all" ]; then
        if [ "$1" = "phpcbf" ]; then
            false
        else
            true
        fi
    elif [ "$module" = "$1" ]; then
        true
    elif [ "$module" = "phpcbf" -a "$1" = "phpcs" ]; then
        true
    else
        false
    fi
}

if [ "$#" = 0 ]; then
    module=all
else
    module="$1"
fi

if [ "$module" = "fix" -o "$module" = "--fix" -o "$module" = "-fix" -o "$module" = "phpcbf" ]; then
    module="phpcbf"
fi

if is_module phpcbf; then
    echo 1>&2
    echo "phpcbf" 1>&2
    echo "======" 1>&2
    echo 1>&2
    vendor/bin/phpcbf --standard=standards/phpcs.xml src || true
fi

if is_module phpcs; then
    echo 1>&2
    echo "phpcs" 1>&2
    echo "=====" 1>&2
    echo 1>&2

    vendor/bin/phpcs --standard=standards/phpcs.xml src
    echo "Ok" 1>&2
fi

if is_module phpmd; then
    echo 1>&2
    echo "phpmd" 1>&2
    echo "=====" 1>&2
    echo 1>&2

    vendor/bin/phpmd src text standards/phpmd.xml
    echo "Ok" 1>&2
fi

if is_module phpstan; then
    echo 1>&2
    echo "phpstan" 1>&2
    echo "=======" 1>&2
    echo 1>&2

    vendor/bin/phpstan analyse --level 6 src
fi
