#!/usr/bin/bash

# DESCRIPTION:
#
# git wrapper to provide -C switch for git <1.8.5.
#
# We employ it for any v1 git (i.e. "legacy git").

legacy_git="$(/usr/bin/git --version | grep 'git version 1')"

if [ -z "$legacy_git" ]; then
    /usr/bin/git "$@"
    exit $?
fi

declare -a new_params
declare -a cd_paths

while [ -n "$1" ]; do
    case "$1" in
    -C)
        shift
        cd_paths=("${cd_paths[@]}" "$1")
        shift
        continue
        ;;
    esac
    new_params=("${new_params[@]}" "$1")
    shift
done

for path in "${cd_paths[@]}"; do
    builtin cd "$path" || exit 128
done

/usr/bin/git "${new_params[@]}"
