#!/usr/bin/env bash

echo ""

echo "[warn] [pre commit hook] [start] php-cs-fixer"

PHP_CS_FIXER="vendor/bin/php-cs-fixer"

if [ -x $PHP_CS_FIXER ]; then
    FILES=$(git status --porcelain | grep '^[AM]' | grep -e '^\s*[AM]\(.*\).php$' | cut -c 4- | tr '\n' ' ') ## sed "s/^/'/; s/$/'/;"
    if [ -n "$FILES" ]; then
        $PHP_CS_FIXER fix --config=.php-cs-fixer.php --quiet ${FILES}
        git add ${FILES}
    fi
else
    echo "[error] php-cs-fixer not found. Run 'make install' or install manually: composer require --dev friendsofphp/php-cs-fixer"
    exit 1
fi

echo "[info] [pre commit hook] [finish] php-cs-fixer"
echo "[warn] [pre commit hook] [start] prettier"

PRETTIER="public/content/themes/proudnerds/node_modules/.bin/prettier"

if [ -x $PRETTIER ]; then
    FILES=$(git status --porcelain | grep '^[MA]' | grep -e '^\s*[AM]\(.*\).\(js\|jsx\|json\|scss\|css\)$' | cut -c 4- | tr '\n' ' ')
    if [ -n "$FILES" ]; then
        $PRETTIER --write --config .prettierrc --log-level silent ${FILES}
        git add ${FILES}
    fi
else
    echo "[error] prettier not found. Run 'make install' or install manually: yarn add --dev --exact prettier"
    exit 1
fi

echo "[info] [pre commit hook] [finish] prettier"
echo "[warn] [pre commit hook] [start] postcss"

POSTCSS="public/content/themes/proudnerds/node_modules/.bin/postcss"

if [ -x $POSTCSS ]; then
    FILES=$(git status --porcelain | grep '^[MA]' | grep -e '^\s*[AM]\(.*\).\(scss\)$' | cut -c 4- | tr '\n' ' ')
    if [ -n "$FILES" ]; then
        $POSTCSS --no-map --replace ${FILES}
        git add ${FILES}
    fi
else
    echo "[error] postcss not found. Run 'make install' or install manually: yarn add --dev --exact postcss postcss-cli postcss-sorting postcss-scss"
    exit 1
fi

echo "[info] [pre commit hook] [finish] postcss"
