blob: 2e31d6583c884e930f732d61ac5801f3b8f35794 [file] [log] [blame]
#!/bin/bash
#
# example usage from within the local org.eclipse.e4.deeplink repo
# USAGE: git-map.sh v20101018-1500 \
# ../releng/org.eclipse.e4.deeplink.releng/maps/deeplink.map \
# bundles
#
#
BUG=/tmp/bugnumbers.txt
CHPROJ=/tmp/changed_projects.txt
BUILD_TAG=$1 ; shift
MAPFILE=$1 ; shift
BASEDIR=$1; shift
PROJECTS=$( ls $BASEDIR )
LATEST_SUBMISSION=""
for proj in $PROJECTS; do
echo Processing $proj
PROJ_LINE=$( grep "@${proj}=" ${MAPFILE} )
projId=$proj
if [ -z "$PROJ_LINE" ]; then
PROJ_LINE=$( grep "path=${BASEDIR}/${proj}" ${MAPFILE} )
projId=$( echo $PROJ_LINE | sed -e 's:^\(plugin\|feature\|fragment\|bundle\)@\([-._A-Za-z0-9]*\)=.*$:\2:' )
fi
if [ ! -z "$PROJ_LINE" ]; then
LAST_COMMIT=$( git rev-list HEAD -- $BASEDIR/$proj | head -1 )
LAST_SUBMISSION=$( echo $PROJ_LINE | sed -e 's/^.*tag=//' | sed -e 's/,.*$//')
if [ "$LATEST_SUBMISSION" \< "$LAST_SUBMISSION" ]; then
LATEST_SUBMISSION=$LAST_SUBMISSION
fi
LAST_COMMIT_DATE=$( git log --pretty=format:"%H %ad" --date=iso | grep $LAST_COMMIT | sed -e 's:[a-f0-9]* \(.*\)$:\1:' )
echo Last commit was at $LAST_COMMIT_DATE
echo Map file entry is $LAST_SUBMISSION
if ! ( git tag --contains $LAST_COMMIT | grep $LAST_SUBMISSION >/dev/null ); then
echo Needs to move from $LAST_SUBMISSION to $BUILD_TAG
echo ${proj} >>$CHPROJ
sed "s/@${projId}=GIT,tag=$LAST_SUBMISSION/@${projId}=GIT,tag=$BUILD_TAG/g" $MAPFILE >/tmp/t1.txt
mv /tmp/t1.txt $MAPFILE
fi
fi
echo ""
done
git log ${LATEST_SUBMISSION}..${BUILD_TAG} "$BASEDIR" \
| grep '[Bb]ug ' \
| sed 's/.*[Bb]ug[^0-9]*\([0-9][0-9][0-9][0-9][0-9]*\)[^0-9].*$/\1/g' >>$BUG