This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
codeblocks-20.03/update_revision.sh

72 lines
2.4 KiB
Bash

#!/bin/sh
#
# This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3
# http://www.gnu.org/licenses/gpl-3.0.html
#
# $Revision: 11967 $
# $Id: update_revision.sh 11967 2020-02-19 22:53:19Z fuscated $
# $HeadURL: svn://svn.code.sf.net/p/codeblocks/code/branches/release-20.xx/update_revision.sh $
#
# make sure [git-]svn answers in english
export LC_ALL="C"
REV_FILE=./revision.m4
# let's import OLD_REV (if there)
if [ -f ./.last_revision ]; then
. ./.last_revision
else
OLD_REV=0
fi
if svn --xml info >/dev/null 2>&1; then
echo "Using 'svn --xml info' to get the revision"
REV=`svn --xml info | tr -d '\r\n' | sed -e 's/.*<commit.*revision="\([0-9]*\)".*<\/commit>.*/\1/'`
LCD=`svn --xml info | tr -d '\r\n' | sed -e 's/.*<commit.*<date>\([0-9\-]*\)\T\([0-9\:]*\)\..*<\/date>.*<\/commit>.*/\1 \2/'`
elif svn --info >/dev/null 2>&1; then
echo "Using 'svn info' to get the revision"
REV=`svn info | grep "^Revision:" | cut -d" " -f2`
LCD=`svn info | grep "^Last Changed Date:" | cut -d" " -f4,5`
#elif git svn --version >/dev/null 2>&1; then
# echo "Using 'git svn info' to get the revision"
# REV=`git svn info | grep "^Revision:" | cut -d" " -f2`
# LCD=`git svn info | grep "^Last Changed Date:" | cut -d" " -f4,5`
elif git log --max-count=1 >/dev/null 2>&1; then
echo "Using 'git log --graph' to get the revision"
REV=`git log --graph | grep 'git-svn-id' | head -n 1 | grep -o -e "@\([0-9]*\)" | tr -d '@ '`
LCD=`git log --date=iso --max-count=1 | grep -o -e "Date: \(.*\)" | cut -d ' ' -f 2- | sed 's/^ *//' | cut -f -2 -d ' '`
else
REV=0
LCD=""
fi
echo "Found revision: '${REV}' '${LCD}'"
if [ "x$REV" != "x$OLD_REV" -o ! -r $REV_FILE ]; then
echo "m4_define([SVN_REV], $REV)" > $REV_FILE
echo "m4_define([SVN_REVISION], 20.03svn$REV)" >> $REV_FILE
echo "m4_define([SVN_DATE], $LCD)" >> $REV_FILE
# Also change the revision number in debian/changelog for package versioning
DCH=`which dch 2> /dev/null`
if [ "x$DCH" != "x" ]; then
if [ -x "$DCH" ]; then
AKT_REV=`sed -e 's/.*svn\([0-9]*\).*/\1/' -e 'q' < debian/changelog`
if [ $REV -gt $AKT_REV ]; then
dch -v 20.03svn$REV "New svn revision"
fi
fi
else
mv debian/changelog debian/changelog.tmp
sed "1 s/(20.03svn[^-)]*/(20.03svn$REV/" < debian/changelog.tmp > debian/changelog
rm debian/changelog.tmp
fi
fi
echo "OLD_REV=$REV" > ./.last_revision
exit 0