| #!/usr/bin/env bash |
| |
| GITCOMMIT=$( git rev-parse HEAD ) |
| #GITDATE=$( git log -1 --format="%H%n%aD" --date=short ) |
| |
| # we go to a lot of trouble here, just to get |
| # short form, in prettiest way, using git commands |
| # as much a possible, instead of heuristic parsing. |
| git symbolic-ref --quiet HEAD >/dev/null |
| if (( $? == 0 )) |
| then |
| GITBRANCH=$( git rev-parse --abbrev-ref HEAD ) |
| else |
| GITBRANCH='[Not on a branch]' |
| fi |
| |
| GITTAG=$( git describe --abbrev=0 --exact-match --contains --tags $GITCOMMIT ) |
| #echo "GITTAG: $GITTAG" |
| SHORT_TAG=${GITTAG##*/} |
| #echo "SHORT_TAG: $SHORT_TAG" |
| |
| #echo "pwd: ${PWD}" |
| REPONAME=${PWD##*/} |
| |
| case "$REPONAME" in |
| eclipse.platform*) |
| REPOROOT="platform";; |
| eclipse.jdt*) |
| REPOROOT="jdt";; |
| eclipse.pde*) |
| REPOROOT="pde";; |
| rt.equinox*) |
| REPOROOT="equinox";; |
| *) |
| echo "WARNING: unrecognized reponame pattern for $REPONAME";; |
| esac |
| #echo "REPOROOT: $REPOROOT" |
| #echo "reponame: ${REPONAME}" |
| #echo "git_dir: $GIT_DIR" |
| # git ls-remote http://www.kernel.org/pub/scm/git/git.git master pu rc |
| # git://git.eclipse.org/gitroot/platform/eclipse.platform.releng.aggregator.git |
| REMOTETAG=$( git ls-remote --tags git://git.eclipse.org/gitroot/${REPOROOT}/${REPONAME}.git $SHORT_TAG ) |
| if [[ -z "${REMOTETAG}" ]] |
| then |
| REMOTETAG='[No tag in remote (canonical) repository]' |
| else |
| REMOTETAG=${REMOTETAG##*/} |
| fi |
| #echo "REMOTETAG: $REMOTETAG" |
| printf " %s \t%s \t%s \t%s \t%s \n" "$REPONAME $GITCOMMIT $GITBRANCH $SHORT_TAG $REMOTETAG" |