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