description: "set version in CONSTANTS class for EiffelStudio"
author: "Jocelyn Fiat and others"
note: "This script could be split into severals scripts, one for each product"
@echo off
rem Set Version
rem %1 : svn wc path
rem %2 : filename.e
setlocal
set SVNWCT=%1
set EFILE=%2
set EFILE_TMP=%EFILE%.tmp
set LC_MESSAGES=C
svn info %SVNWCT% > %EFILE_TMP%
For /f "tokens=1-4 delims=/ " %%a in ('findstr /L /B /C:"Last Changed Rev" %EFILE_TMP%') do (set LASTREV=%%d)
del %EFILE_TMP%
if .%LASTREV%. == .. set LASTREV=0000 -- Script was unable to set this value
For /f "tokens=1-4 delims=/ " %%a in ('date /t') do (set TODAYDATE=%%c-%%a-%%b)
echo Set version: LASTREV=%LASTREV%
svn revert %EFILE%
sed -e "s/:= 0000/:= %LASTREV%/" %EFILE% > %EFILE_TMP%
move %EFILE_TMP% %EFILE%
rem update the version_info ...
sed -e "s/Version_info:\ STRING\ =\ \"[0-9a-zA-Z_\,\ \/\:()\.\=\-]*\"/Version_info:\ STRING\ =\ \"Revision:\ %LASTREV% , Compilation:\ %TODAYDATE%\ %TIME% , Builder:\ %USERNAME%\"/g" %EFILE% > %EFILE_TMP%
move %EFILE_TMP% %EFILE%
endlocal
@echo on
#!/bin/sh
# set version number in $2 to the latest SVN repository version number.
# $1 = SVN repository
# $2 = file to process if any, otherwise display version on output
LC_MESSAGES=C
computed_svn_revision=`until svn info $1; do echo ""; done | grep "Last Changed Rev" | sed -e "s/Last Changed Rev: //"`
if test "$computed_svn_revision" = "" ; then
echo bad
computed_svn_revision='0000 -- Script was unable to set this value'
fi
if test "$2" = "" ; then
echo $computed_svn_revision
else
echo Set version: LASTREV=$computed_svn_revision
svn revert $2 #revert in case it was modification
sed -e "s/:= 0000/:= $computed_svn_revision/" $2 > tmp
mv tmp $2
fi