#!/bin/sh
set -e

usage () {
    cat <<'EOF'
git remote-branches [<remote>]
EOF
}

remote_branches () {
    # The `$2 == ""` filter drops symbolic refs (e.g. origin/HEAD), whose
    # %(symref) field is non-empty; real branches have an empty second field.
    git for-each-ref --format='%(refname:short) %(symref)' refs/remotes/ \
        | awk '$2 == "" { print $1 }'
}

if [ $# -eq 1 ]; then
    remote_branches | grep -Ee "^$1/"
elif [ $# -eq 0 ]; then
    remote_branches
else
    usage >&2
    exit 2
fi
