#!/bin/bash -e

# check Direct code with checkstyle

SETTINGS_XML=${SETTINGS_XML:="/yandex_checks_extended.xml"}
DIR=${1:-"./"}

ARCADIA_ROOT="${PWD}"
while [[ ! -e "${ARCADIA_ROOT}/.arcadia.root" ]]; do
    if [[ "${ARCADIA_ROOT}" == "/" ]]; then
        echo "$0: must be run from inside Arcadia checkout" >&2
        exit 1
    fi
    ARCADIA_ROOT="$(dirname "${ARCADIA_ROOT}")"
done

CHECKSTYLE_CP=~/.ya/devtools-jstyle-runner
if [[ ! -e "$CHECKSTYLE_CP/devtools-jstyle-runner.jar" ]]; then 
    ya make --checkout "${ARCADIA_ROOT}/devtools/jstyle-runner" -o "$CHECKSTYLE_CP"
    cp -RL "$CHECKSTYLE_CP"/devtools/jstyle-runner/devtools-jstyle-runner/*.jar "$CHECKSTYLE_CP/"
fi

find "$DIR" -name '*.java' -not -path '*libs/dbschema/*' -not -path '*/generated/*' -print0 \
    | xargs -0 ya tool java11 -cp "$CHECKSTYLE_CP/*:" com.puppycrawl.tools.checkstyle.Main -c $SETTINGS_XML

