QGIS/tools/qgiscommit
2004-04-01 14:01:10 +00:00

90 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
#
# Get Root
#
if [ ! -f CVS/Repository ]; then
echo "You are not in the qgis repository!"
exit -1
fi
WAY2ROOT=`sed -e 's#qgis/##' -e 's#qgis##' -e 's#[^/]+#..#g' CVS/Repository`
if [ "a${WAY2ROOT}" != "a" ]; then
pushd $WAY2ROOT > /dev/null
fi
if [ ! -f configure.in ]; then
popd
echo "You are not in the qgis repository!"
exit -1
fi
for I in $@; do
if [ ! -f $I ]; then
echo "File ${I} not relative to CVS Root (`pwd`)!"
exit -1
fi
done
NAME=`sed -e 's/.*:\([^:]*\)@.*/\1/' CVS/Root`
TMPFILE=`mktemp /tmp/qgis-commit-tmp.XXXXXXXXXX`
MAJOR_VERSION=`sed -n -e 's/MAJOR_VERSION=//p' configure.in`
MINOR_VERSION=`sed -n -e 's/MINOR_VERSION=//p' configure.in`
MICRO_VERSION=`sed -n -e 's/MICRO_VERSION=//p' configure.in`
EXTRA_VERSION=`sed -n -e 's/EXTRA_VERSION=//p' configure.in`
if [ "a$@" != "a" ]; then
EXTRAS="ChangeLog configure.in"
else
EXTRAS=""
fi
#
# Change Extra Version
#
NEXTRA_VERSION=`expr ${EXTRA_VERSION} + 1`
sed -e "/EXTRA_VERSION=/s/${EXTRA_VERSION}/${NEXTRA_VERSION}/" configure.in > configure.in.tmp
mv configure.in.tmp configure.in
#
# Get Changes
#
echo "************************************************************" > ${TMPFILE}
echo "Please write above that line of stars! Rest will be removed." >> ${TMPFILE}
cvs diff $@ ${EXTRAS} 2> /dev/null | sed -e "/^?/d" -e "/^Index: /d" >> ${TMPFILE}
${EDITOR} ${TMPFILE}
#
# Add to ChangeLog
#
CLINES=`wc -l ChangeLog | awk '{print $1}'`
DIFFLINES=`expr $CLINES - 4`
DATE=`date +%F`
MSG=`sed -e '/\*\{20\}/,$d' ${TMPFILE}`
head -n 5 ChangeLog > ChangeLog.tmp
echo "${DATE} [${NAME}] ${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}devel${NEXTRA_VERSION}" >> ChangeLog.tmp
echo "${MSG}" >> ChangeLog.tmp
tail -n $DIFFLINES ChangeLog >> ChangeLog.tmp
mv ChangeLog.tmp ChangeLog
#
# Commit
#
cvs commit -m "${MSG}" $@ ${EXTRAS}
rm ${TMPFILE}
if [ "a${WAY2ROOT}" != "a" ]; then
popd
fi