#!/usr/bin/env bash

# ==============================================================================
# Tool to check the syntax of `.qml`/`.js` files.
# ==============================================================================

RESOURCES_FILE='resources.qrc'
LINTER=qmllint

RED='\e[1;31m'
GREEN='\e[1;32m'
BLUE='\e[1;34m'
NC='\e[0m'

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "${SCRIPT_DIR}/.."

# ==============================================================================

if ! [ -x "$( command -v "$LINTER" )" ]; then
  printf "${RED}Unable to find ${LINTER}.${NC}\n"
  exit 0
fi

"${LINTER}" -v 2> /dev/null 1>&2
if [[ $? != 0 ]] ; then
  printf "${RED}Unable to check qml syntax.${NC}\n"
  exit 0
fi

printf "${BLUE}Checking qml files...${NC}\n"

so_far_so_good=0
while read file; do
  $LINTER "$file"
  if [[ $? != 0 ]] ; then
    so_far_so_good=1
  fi
done < <(git diff --name-only --cached --diff-filter=d | grep -E '\.(qml|js|js\.spec)$')

if [[ $so_far_so_good == 0 ]]; then
  printf "${GREEN}Done. No qml error found.\n"
else
  printf "${RED}One or more errors were found. Please to fix them.\n"
fi
printf "${NC}"

exit $so_far_so_good
