1*4c3eb207Smrg#!/bin/sh 2*4c3eb207Smrg 3*4c3eb207Smrg# Script to describe a GCC revision based on git hash 4*4c3eb207Smrg 5*4c3eb207Smrgshort=no 6*4c3eb207Smrglong=no 7*4c3eb207Smrgc=master 8*4c3eb207Smrg 9*4c3eb207Smrgfor arg in "$@" 10*4c3eb207Smrgdo 11*4c3eb207Smrg case "$arg" in 12*4c3eb207Smrg --short) short=yes long=no 13*4c3eb207Smrg ;; 14*4c3eb207Smrg --long|--full) long=yes short=no 15*4c3eb207Smrg ;; 16*4c3eb207Smrg *) c=$arg 17*4c3eb207Smrg esac 18*4c3eb207Smrgdone 19*4c3eb207Smrg 20*4c3eb207Smrgif test x$short = xyes; then 21*4c3eb207Smrg 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'); 22*4c3eb207Smrgelif test x$long = xyes; then 23*4c3eb207Smrg r=$(git describe --all --abbrev=40 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p') 24*4c3eb207Smrgelse 25*4c3eb207Smrg r=$(git describe --all --abbrev=14 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p'); 26*4c3eb207Smrg expr match ${r:-no} 'r[0-9]\+$' >/dev/null && r=${r}-0-g$(git rev-parse $c); 27*4c3eb207Smrgfi; 28*4c3eb207Smrgif test -n $r; then 29*4c3eb207Smrg o=$(git config --get gcc-config.upstream); 30*4c3eb207Smrg rr=$(echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'); 31*4c3eb207Smrg if git rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then 32*4c3eb207Smrg m=releases/gcc-$rr; 33*4c3eb207Smrg else 34*4c3eb207Smrg m=master; 35*4c3eb207Smrg fi; 36*4c3eb207Smrg git merge-base --is-ancestor $c ${o:-origin}/$m && echo ${r}; 37*4c3eb207Smrgfi; 38