#!/usr/bin/env bash

# GitHub does not support fast-forward merge.
# This script is intended to simplify merge of Pull Requests to keep history linear (fast-forwarded)
# All Pull Requests from GitHub to our project has to be applied to our code by this script.

set -e

if [ $# -eq 0 ]
  then
    echo "$(basename "$0") FORK_USER_NAME USER_BRANCH
example:

    ./$(basename "$0") konstantinos issue73
"
    exit 0;
fi

GIT_REPO=checkstyle
FORK_USER_NAME=$1
USER_BRANCH=$2
REPO=${FORK_USER_NAME}-fork
LOCAL_USER_BRANCH=${FORK_USER_NAME}-${USER_BRANCH}

echo "removing remote ${REPO} if present ..."
git remote rm ${REPO} | true

echo "adding remote ..."
git remote add ${REPO} https://github.com/${FORK_USER_NAME}/${GIT_REPO}.git
git fetch ${REPO}

echo "removing remote ${LOCAL_USER_BRANCH} if present ..."
git branch -D ${LOCAL_USER_BRANCH} | true

echo "creating local branch ..."
git checkout -b ${LOCAL_USER_BRANCH} ${REPO}/${USER_BRANCH}

echo "rebasing over master ..."
git rebase master

echo "merge to master ..."
git checkout master
git merge ${LOCAL_USER_BRANCH} --ff-only

echo "removing local branch ..."
git branch -D ${LOCAL_USER_BRANCH}

echo "removing remote ..."
git remote rm ${REPO}
