#!/usr/bin/env bash

# Initialize the variable before combine
FILES=""

for FILE in $(git diff --cached --name-only --diff-filter=ACM -z | xargs -0)
do
    # debug
    # echo "FILE=$FILE";

    # do a check only on the python files
    if [[ ! $FILE =~ (\.py)$ ]]; then continue; fi

    FILES+="${FILE} "
done

# debug
#echo "FILES=$FILES";

# no python files, cancel...
if [[ $FILES == "" ]]; then exit 0; fi

if [[ -z "$VIRTUAL_ENV" ]]; then
    echo "No \$VIRTUAL_ENV set"
else
    echo "\$VIRTUAL_ENV is set to $VIRTUAL_ENV"
fi

python --version

# insert licence
echo "Insert licence with insert_license..."
insert_license --license-filepath=license_header.txt $FILES

# sort import
echo "Sort imports with isort..."
isort $FILES

# format files
echo "Format with black..."
black $FILES

# static typing
echo "Check static typing with mypy..."
mypy --ignore-missing-imports $FILES

# linter
echo "Lint with ruff..."
ruff $FILES

