#!/bin/bash

# A wrapper around git-subtree which first filters to remove the stuff from
# allwpilib we don't want.
# Also simplifies the interface a bunch to just what we need.

# The implementation running `git filter-branch` over allwpilib's entire history
# isn't the fastest thing ever, but it's not all that bad.

# Example: ./doc/allwpilib_subtree.sh add third_party/allwpilib_2016 \
#   https://usfirst.collab.net/gerrit/allwpilib master

set -e
set -u
set -o pipefail

if [ $# -ne 4 ]; then
  echo "Usage: $0 add|pull|filter prefix remote ref" >&2
  exit 1
fi

COMMAND="$1"
PREFIX="$2"
REMOTE="$3"
REF="$4"

git fetch "${REMOTE}" "${REF}"

readonly REMOVE_DIRECTORIES="ni-libraries wpilibj wpilibjIntegrationTests gradle"
readonly TREE_FILTER="$(for d in ${REMOVE_DIRECTORIES}; do
  echo "if [ -d $d ]; then git rm -rf $d; fi && "
done)"
git filter-branch --tree-filter "${TREE_FILTER}true" FETCH_HEAD

FILTERED_REF="$(git rev-parse FETCH_HEAD)"

if [[ "${COMMAND}" = "filter" ]]; then
  echo "Filtered ref is ${FILTERED_REF}"
  exit 0
fi

exec git subtree "${COMMAND}" --squash --prefix="${PREFIX}" "${FILTERED_REF}"
