#!/bin/bash

# The purpose of this script is to checkout the latest branches for all
# submodules within the current aggregator branch. It uses the
# repositories.txt file to determine the submodule to branch mappings.
#
# Usage (all submodules): 
#     ./scripts/submodules-checkout.sh
# Alternative usage (single submodule): 
#     ./scripts/submodules-checkout.sh webtools.releng master
#
# This script should be called from the root of the aggregator repo.

# There are two list of repositories, the "normal" and the "patches" the
# In the patches one, only those components that had requested to be included
# in the patch will be used, saving time in the preparation of the environment

if [[ $# -gt 0 ]]; then 
    pushd $1
    if [[ $2 ]]; then 
	    git checkout $2
	else
	    git checkout master
	fi
    git pull
    popd
else
	IFS=$'\n' read -d '' -r -a repos < scripts/repositories.txt
	for i in "${repos[@]}"
	do
	    repository=$(echo $i | cut -f1 -d: | tr -d ' ')
	    branch=$(echo $i | cut -f2 -d: | tr -d ' ')

	    pushd $repository
	    git checkout $branch
	    git pull
	    popd
	done
fi
