aboutsummaryrefslogtreecommitdiff
path: root/po/make-template.sh
blob: d34c8d05c6936673cc9777fbb59fa2bf8b8001b0 (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
#!/bin/sh
# This shell script generates the translation template.
#
# The reason for this not being inside CMakeLists.txt
# is that the translator should not need to run the whole
# configuration process just to get this single stupid file.

# Get the directory this script resides in so that the user
# doesn't have to run the script from there
DIR=$(dirname $0)

# Collect source files
SOURCES=$(echo $DIR/../src/*.c)

# Get the package name from CMakeLists.txt
PACKAGE=$(sed -n '/^[ \t]*project[ \t]*([ \t]*\([^ \t)]\{1,\}\).*).*/{s//\1/p;q}' \
	$DIR/../CMakeLists.txt)

# Get the package version from CMakeLists.txt
EXP_BEG='/^[ \t]*set[ \t]*([ \t]*project_VERSION_'
EXP_END='[ \t]\{1,\}"\{0,1\}\([^)"]\{1,\}\)"\{0,1\}).*/{s//\1/p;q}'

MAJOR=$(sed -n "${EXP_BEG}MAJOR${EXP_END}" $DIR/../CMakeLists.txt)
MINOR=$(sed -n "${EXP_BEG}MINOR${EXP_END}" $DIR/../CMakeLists.txt)
PATCH=$(sed -n "${EXP_BEG}PATCH${EXP_END}" $DIR/../CMakeLists.txt)

if [ "$MAJOR" != "" ]; then
	VERSION=$MAJOR
	if [ "$MINOR" != "" ]; then
		VERSION=$VERSION.$MINOR
		if [ "$PATCH" != "" ]; then
			VERSION=$VERSION.$PATCH
		fi
	fi
fi

if [ -z "$PACKAGE" -o -z "$VERSION" ]; then
	echo "Failed to get information from CMakeLists.txt"
	exit 1
fi

# Finally make the template
xgettext -LC -k_ -kN_ $SOURCES -o "$DIR/$PACKAGE.pot" \
	--package-name="$PACKAGE" --package-version="$VERSION" \
	--copyright-holder="Přemysl Janouch" \
	--msgid-bugs-address="https://github.com/pjanouch/$PACKAGE/issues"