#!/usr/bin/env bash

# This script pulls a specific branch from the origin repository, making sure
# not to keep the prefix. If the branch already exists, try to merge. If not,
# check out from origin.
#
# Syntax: git-pull linaro-local/[branch]

. llvm-common

branch=$1
if [[ $branch = '' ]]; then
  branch=`get_branch`
fi

if [[ $branch = 'master' ]]; then
  echo "Can't pull the master branch."
  echo "Use git-refresh instead."
  exit 1
fi

prefix="linaro-local/"
if echo $branch | grep -q linaro-local; then
  prefix=""
fi

safe_run git-refresh

if git branch -a | not grep -q $branch; then
	echo "Branch '$branch' doesn't exist in this repository"
	exit 2
fi

# If the branch exists already, merge
if git branch | grep -q $branch; then
  echo " + Merging the origin branch..."
  if not git merge --ff-only origin/$prefix$branch; then
    echo "Error merging the branch."
    exit 1
  fi
# If not, just check out the branch
else
  safe_run git checkout -b $branch origin/$prefix$branch
fi
