#!/usr/bin/env bash

set -euo pipefail

echo "Script started with $# arguments"
echo "Arguments: $*"
echo "Script location: $(dirname "$0")"

cd "$(dirname "$0")/.."
echo "Changed to directory: $(pwd)"

if [ $# -eq 0 ]; then
    echo "Usage: $0 <file-with-paths> [additional-formatter-args...]"
    echo "The file should contain one file path per line"
    exit 1
fi

FILE_LIST="$1"

echo "Looking for file: $FILE_LIST"

if [ ! -f "$FILE_LIST" ]; then
    echo "Error: File '$FILE_LIST' not found"
    exit 1
fi

echo "==> Running eslint --fix"
ESLINT_FILES="$(grep '\.ts$' "$FILE_LIST" || true)"
if ! [ -z "$ESLINT_FILES" ]; then
   echo "$ESLINT_FILES" | xargs ./node_modules/.bin/eslint --cache --fix
fi

echo "==> Running prettier --write"
if ! [ -z "$FILE_LIST" ]; then
   cat "$FILE_LIST" | xargs ./node_modules/.bin/prettier \
      --write --cache --cache-strategy metadata --no-error-on-unmatched-pattern --ignore-unknown
fi
