#! /usr/bin/env bash

error_code=0

usage="git_branch_all <branch name>"
if [ "$1" == "" ]; then
  echo "Must provide branch name."
  echo $usage
  exit 1
elif [ "$1" == "--help" ] || [ "$1" == "-h" ]; then
  echo $usage
  exit 0
fi

branch_name=$1

echo "branch_name = $branch_name"

external_packages="CTrilinos ForTrilinos mesquite moocho optika Sundance"

echo "Branching current repo."
git branch $branch_name
error_code=$?
git checkout $branch_name

for package in $external_packages
do
  echo "Branching package $package"
  if [ ! -e packages/$package ]; then
    echo "packages/$package does not exist."
    error_code=1
    continue
  fi
  pushd packages/$package >/dev/null
  git branch $branch_name
  error_code=$(expr $? + $error_code)
  git checkout $branch_name
  popd >/dev/null
done

exit $error_code
