#!/bin/bash

cd "$1"

git remote update >&2
BRANCH="$(git rev-parse --symbolic-full-name --abbrev-ref HEAD)"
UPSTREAM='@{u}'
LOCAL=$(git rev-parse $BRANCH)
REMOTE=$(git rev-parse "$UPSTREAM")
BASE=$(git merge-base $BRANCH "$UPSTREAM")

if [ "$LOCAL" = "$REMOTE" ]; then
    echo "Up-to-date"
elif [ "$LOCAL" = "$BASE" ]; then
    echo "Need to pull"
elif [ "$REMOTE" = "$BASE" ]; then
    echo "Need to push"
else
    echo "Diverged"
fi
