# Needed if repo remotes use ssh and need to be checked for remote HEAD
# if [ -f "$HOME/.ssh/id_rsa" ]; then
# if [ -z "$(ssh-add -L 2> /dev/null)" ]; then
# ssh-add -q $HOME/.ssh/id_rsa 2> /dev/null
# fi
# fi
for c in $PROJECT_CONTAINERS
do
echo CONTAINER $c
repos=$(ls -d $c/*/)
for r in $repos
do
declare -a msgs=()
pushd $r > /dev/null
if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null ) != "true" ]]; then
echo $r not a repo
popd > /dev/null
continue
fi
branch=$(git rev-parse --abbrev-ref HEAD 2> /dev/null )
if [[ $branch != "master" ]]; then
# Additional slow check for rarer case that remote HEAD is
# something other than "master"
master_branch=$(git remote show origin | grep HEAD | grep -o "\S*\$")
if [[ $branch != $master_branch ]]; then
msgs+=("is on branch $branch")
fi
fi
if [ -z "$(git status --porcelain)" ]; then
# Working directory clean
:
else
msgs+=("has changes")
fi
msgslength=${#msgs[@]}
if [ "$msgslength" -gt "0" ]; then
echo "$r:"
for (( i=1; i<${msgslength}+1; i++ ));
do
echo " * ${msgs[$i-1]}"
done
fi
popd > /dev/null
done
done