#!/usr/bin/env bash

echo "用法一, 校验 git changes not staged文件: ./script/format"
echo "用法一, 校验 指定文件: ./script/format app"

declare -a filteredFiles

if [ $# -eq 0 ]; then
    files=`git diff --diff-filter=d --name-only | grep -E '^app.*$'`

    if [ -z "${files}" ]; then
        echo "no files changed to format..."
        exit 0
    fi

    for file in "${files[@]}"
    do
        if [[ $file =~ \.py$ ]]; then
            filteredFiles+=($file)
        fi
    done
else
    filteredFiles=$@
fi

set -e

if [ -z "${filteredFiles}" ]; then
    echo "no files changed to format..."
    exit 0
else
    autoflake --recursive --exclude settings*  --remove-all-unused-imports --remove-unused-variables --ignore-init-module-imports  --in-place ${filteredFiles[@]}
    black ${filteredFiles[@]}
    isort ${filteredFiles[@]}
fi