summaryrefslogtreecommitdiff
path: root/bin/svn-revision
blob: c698135c1b7c36b74b50195305acdf3602431f21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh

#
# $Id: svn-revision 12303 2006-11-11 08:11:46Z cbiere $
#
# Copyright (c) 2006, Raphael Manfredi
#
#  You may redistribute only under the terms of the Artistic Licence,
#  as specified in the README file that comes with the distribution.
#  You may reuse parts of this distribution only within the terms of
#  that same Artistic Licence; a copy of which may be found at the root
#  of the source tree for dist 4.0.
#
# Computes SVN current revision number, if possible, emitting it in
# the form of a #define for C perusal.
#

LC_ALL=C
export LC_ALL

TOP="$1"
FILE="$2"

if [ "x$FILE" = x ]; then
	FILE="&1"
	oldrev=''
else
	oldrev=`grep REVISION "$FILE" 2>/dev/null | head -n1 | cut -d' ' -f4`
fi

if test -d "$TOP/.svn"; then
  revnum=`svn info "$TOP" 2>/dev/null | grep '^Revision' | head -n1 | cut -d' ' -f2`
else
  revnum="$oldrev" # keep as is
fi

if [ "x$revnum" = "x$oldrev" ]; then
	exit 0
fi

{
stamp=`date +"%Y-%m-%d %H:%M:%d %z"`
cat <<EOF
/*
 * THIS FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT
 *
 * Generated by $0.
 */

EOF

if [ "x$revnum" = x ]; then
	echo '/* Subversion information not available */'
else
	XRev='$Revision'
	cat <<EOF
#define REVISION "$XRev: $revnum \$"
EOF
fi

} > "$FILE"