# shellcheck shell=dash

___x_cmd_git_track() {
    if [ "$#" -eq 2 ]; then
        ___x_cmd___git_origin branch --track "${1:?local branch}" "${2:?remote branch}"
        return
    fi

    ___x_cmd___git_trackall "$1"
}

___x_cmd___git_trackall() {
    local src="${1:-origin}"
    # for remote in $(command git branch -r | command grep -v '\->' | command grep -E "^ +origin"); do command git branch --track "$remote"; done
    ___x_cmd___git_origin branch -r | command grep -v '\->' | \
        command grep -E "^ +${src}" |
        while read -r remote; do
            ___x_cmd___git_origin branch --track "${remote#"${src}"/}" "$remote"
        done
}
