#!/bin/bash
result=0
IFS="
"
originURL="$(git config remote.origin.url)"

homedir=0
if [[ "$originURL" =~ .*HomeDir.git$ ]]; then
    homedir=1
fi

# We don't want to commit data files, with the exceptions being our GPG public key and organization logo in PNG & ASCII format.
for file in `git ls-files | xargs -d '\n' -n 1 file | grep -Ev 'ASCII text|JSON|empty|Unicode text|symbolic link|^Resources/logo.png|^Resources/ascii.txt|^Resources/public.gpg'`; do
    #echo Evaluating \`"${file}"\`
    filename="$(echo "${file}" | cut -f 1 -d ':')"

    # Some databases need to be revision controlled to protect secrets, but these should only be committed to private repos.
    if [ $homedir -eq 1 ] && [[ "$file" =~ GPG.keybox|Ansible.Vault|Keepass|^.gnupg/tofu.db ]]; then
        continue
    fi

    if [ "$(du -k "${filename}" | awk '{ print $1; }')" -gt 250 ]; then
        echo "$file"
        result=1
    fi
done
if [ $result -eq 1 ]; then
    echo "These files need to be evaluated -- generally, don't commit data files to Git."
fi
exit $result
