#!/usr/bin/python

# Run "ln -sf ../../scripts/pre-commit .git/hooks/pre-commit" from SDK root directory to apply this git hook.
# For Windows, run "mklink /H .git\hooks\pre-commit scripts\pre-commit" as administrator.

import git
import os
import sys

current_directory = os.path.dirname(os.path.realpath(__file__))

repo = git.Repo(current_directory, search_parent_directories=True)
repo_root = repo.git.rev_parse('--show-toplevel')

diff = repo.git.diff('--staged', '--name-only', '--diff-filter=ACM')

diff = diff.split('\n')

files = [os.path.join(repo_root, file) for file in diff if file.endswith(('.cpp', '.h', '.c', '.py', '.java')) and '/dependencies/' not in file]

unformatted_files = []
for file in files:
    if '\t' in open(file).read():
        unformatted_files.append(file)

if unformatted_files:
    print('Failed to commit.\nRemove tabs from your file before committing.')
    for file in unformatted_files:
        print("    {}".format(file))
    sys.exit(1)
