#!/bin/sh

# Script to describe a GCC revision based on git hash

short=no
long=no
c=master

for arg in "$@"
do
    case "$arg" in
      --short) short=yes long=no
	;;
      --long|--full) long=yes short=no
	;;
      *) c=$arg
    esac
done

if test x$short = xyes; then
    r=$(git describe --all --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)-\([0-9]\+\)-g[0-9a-f]*$,r\2-\3,p;s,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)$,r\2-0,p');
elif test x$long = xyes; then
    r=$(git describe --all --abbrev=40 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p')
else
    r=$(git describe --all --abbrev=14 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p');
    expr match ${r:-no} 'r[0-9]\+$' >/dev/null && r=${r}-0-g$(git rev-parse $c);
fi;
if test -n $r; then
    o=$(git config --get gcc-config.upstream);
    rr=$(echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p');
    if git rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then
	m=releases/gcc-$rr;
    else
	m=master;
    fi;
    git merge-base --is-ancestor $c ${o:-origin}/$m && echo ${r};
fi;
