#!/bin/bash

if [ ! -f ./src/__main__.py ]; then
    echo $'\e[01;31m-- You need to cd into the repository'\'$'s root directory --\e[00m'
    exit 140
fi

echo $'\e[1m-- Testing that the shell auto-completion script compiles --\e[0m'

## If this automated bisection stops at a commit with a syntax error or other error that cases the test to fail for another reason,
## you will need to manually run bisect, and use `git reset --hard HEAD~1` (or similar) to skip that commit, see `git bisect --help`

if ! auto-auto-complete bash --source ./completion/ponysay --output /dev/null; then
    git bisect start
    git bisect bad
    git bisect good e8aa39a810e43866a8cc978a038545949711f999
    lastlog=""
    while true; do
	if ! auto-auto-complete bash --source ./completion/ponysay --output /dev/null; then
	    git bisect good
	else
	    git bisect bad
	fi
	# This part is a little hacky as I assume git use locale settings for the language and there seems to be no good way to automate a bisect.
	nowlog="$(git bisect log | tail -n 1)"
	if [ "${nowlog}" = "${lastlog}" ]; then
	    git bisect reset
	    exit 1
	fi
    done
fi

echo 'Test passed, you may want to update the last know good commit in ./dev/tests/auto-completion'

