#!/bin/bash
. $(dirname "$0")/../hooks_common

STATUS=$(git status -s)
STASH_NAME="pre-commit.$(date +%F.%T)"
[ "$STATUS" == "" ] || "$DIR/utils/stash_untracked" "$STASH_NAME"
STASH_TITLE="On $($DIR/utils/getbranch): ${STASH_NAME}"

_unstash() {
    [ "$STATUS" == "" ] && return
    STASH_LAST=$(git stash list -1 --pretty=%B)

    if [ "$STASH_LAST" = "$STASH_TITLE" ]
    then
        # NB -q makes things crazy
        git stash pop > /dev/null
    else
        echo -e "\033[31mLast stash is not mine!\033[0m"
        echo "$STASH_LAST\n$STASH_TITLE"
    fi
}

trap _unstash TERM
trap _unstash KILL
trap _unstash INT

# TODO Add untracked notification 
$HOOK $@ && git ls-files --others --error-unmatch --exclude-standard
RESULT=$?

_unstash
_exit $RESULT
