#!/usr/bin/env bash
##makedesc: Install phpcs + php-cs-fixer

set -eo pipefail

installed() { command -v "$1" >/dev/null 2>&1; }

install() {
    echo
    echo "==============================================="
    echo "Installing phpcs + php-cs-fixer"
    echo "==============================================="
    echo

    if ! installed php; then
        echo "ERROR: You need php to be installed" >&2
        exit 1
    fi
    if ! installed composer; then
        echo "ERROR: You need composer to be installed" >&2
        exit 2
    fi

    COMPOSER_GLOBAL_HOME="$(composer config -g home)"
    NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
    if ! grep -qoh "$NEWPATH" "$HOME/.profile" 2>/dev/null; then
        echo "$NEWPATH" >> "$HOME/.profile"
    fi

    # shellcheck source=/dev/null
    source "$HOME/.profile"

    composer global require squizlabs/php_codesniffer --dev
    composer global require friendsofphp/php-cs-fixer --dev

    echo
    echo "Finish!"
    phpcs --version
    php-cs-fixer --version
    echo
}

case "$1" in
    *) install ;;
esac
