#!/usr/bin/env bash
set -eu

# Path to wherever you put this.
init_tags=$BIZ_ROOT/Biz/Ide/init_tags.sh

old=$1
new=$2
# is_branch=$2 # 1 if branch, 2 if file

# filter out only the changed files
changed=($(git diff --name-only $old $new))

if [[ ! -r tags ]]
then
    $init_tags
elif [[ ${#changed} -gt 0 ]]
then
    grep -v -F --regexp=${^changed} $BIZ_ROOT/tags > $BIZ_ROOT/tags.tmp
    mv tags.tmp tags

    # Retag all hs files except the ones that were deleted.
    modified=($(git diff --name-only --diff-filter=d $old $new))
    # Filter *.hs, since grep returns non-zero for no matches.
    modified=(${(M)modified:#*.hs})
    echo "modified: $modified"
    $init_tags $modified
fi