1
#!/bin/sh
2
3
STARTDIR=`pwd`
4
cd `dirname $0`
5
6
# Common vars
7
QUERY=$1
8
if [ "$QUERY" = "pack" ] || [ "$QUERY" = "just-pack" ];
9
then
10
	PACK=1
11
else
12
	PACK=0
13
fi
14
if [ "$QUERY" = "compile" ] || [ "$QUERY" = "pack" ];
15
then
16
	COMPILE=1
17
else
18
	COMPILE=0
19
fi
20
if [ "$QUERY" = "clean" ];
21
then
22
	CLEAN=1
23
else
24
	CLEAN=0
25
fi
26
27
# Packaging vars
28
URL_PREFIX="http://qutim.org/downloads/qutim-lang_"
29
URL_SUFFIX=".zip"
30
PLUGMAN_INFO='Pinfo.xml'
31
32
# Fill the list of languages
33
shift
34
if [ "$#" -gt "0" ];
35
then
36
	LANGUAGES="$@"
37
else
38
	LANGUAGES=`find . -mindepth 1 -maxdepth 1 -type d -not -name ".git" -not -name ".svn" -and -not -name "__trans" -and -not -name "__tmp" -and -not -name "debian" -print`
39
fi
40
41
# Check command
42
if [ "$COMPILE" -eq "0" ] && [ "$PACK" -eq "0" ] && [ "$CLEAN" -eq "0" ];
43
then
44
	echo "Usage:"
45
	echo "  ./make.sh command [language ...]"
46
	echo "Where:"
47
	echo "   * command - is one of the following:"
48
	echo "        compile - compile .ts files"
49
	echo "        pack - compile .ts files and create plugman packages"
50
	echo "        just-pack - create plugman packages from already compiled .ts files"
51
	echo "        clean - remove '__trans' and '__tmp' dirs"
52
	echo "   * language - optional parameter, specifies one or more languages to compile"
53
	echo "        if languages are not specified, all of them are compiled"
54
	cd $STARTDIR && exit 1
55
fi
56
57
# Package cleaning
58
if [ "$CLEAN" -eq "1" ];
59
then
60
	rm -rf __trans __tmp
61
	for language in $LANGUAGES;
62
	do
63
		rm -rf $language/binaries/*.qm
64
		rm -rf $language/binaries/
65
	done
66
	cd $STARTDIR && exit
67
fi
68
69
# A number of checks
70
if [ ! -x "`which sed`" ]
71
then
72
	echo "sed not found!!! Kill yourself, please!"
73
	cd $STARTDIR && exit 1
74
else
75
	SED=`which sed`
76
	echo "sed found in '$SED'"
77
fi
78
if [ "$PACK" -eq "1" ];
79
then
80
	if [ ! -x "`which zip`" ];
81
	then
82
		echo "zip not found!"
83
		cd $STARTDIR && exit 1
84
	else
85
		ZIP=`which zip`
86
		echo "zip found in '$ZIP'"
87
	fi
88
	if [ ! -x "`which svn`" ];
89
	then
90
		echo "svn not found!"
91
		cd $STARTDIR && exit 1
92
	else
93
		SVN=`which svn`
94
		echo "svn found in '$SVN'"
95
	fi
96
	if [ ! -x "`which awk`" ];
97
	then
98
		echo "awk not found!"
99
		cd $STARTDIR && exit 1
100
	else
101
		AWK=`which awk`
102
		echo "awk found in '$AWK'"
103
	fi
104
	if [ -d ".svn" ];
105
	then
106
		REV=`LANG=C $SVN info | $AWK '$1=="Revision:" {print $2;}'`
107
	else
108
		REV=`LANG=C $SVN info http://qutim.org/svn/languages | $AWK '$1=="Revision:" {print $2;}'`
109
	fi
110
fi
111
if [ "$COMPILE" -eq "1" ]
112
then
113
	if [ -x "`which lrelease-qt4`" ];
114
	then
115
		LRELEASE=`which lrelease-qt4`
116
		echo "lrelease found in '$LRELEASE'"
117
	else
118
		if [ -x "`which lrelease`" ];
119
		then
120
			LRELEASE=`which lrelease`
121
			echo "lrelease found in '$LRELEASE'"
122
		else
123
			echo 'lrelease not found!'
124
			cd $STARTDIR && exit 1
125
		fi
126
	fi
127
fi
128
129
for language in ${LANGUAGES};
130
do
131
	if [ "$COMPILE" -eq "1" ];
132
	then
133
		[ -d "${language}/binaries" ] || mkdir -p "${language}/binaries"
134
		for ts in `ls ${language}/*.ts`; do
135
			qm="${language}/binaries/`basename $ts | sed 's/ts$/qm/'`"
136
			$LRELEASE $ts -qm $qm
137
		done
138
	fi
139
	if [ "$PACK" -eq "1" ];
140
	then
141
		[ -d "__trans" ] || mkdir -p "__trans"
142
		lang=`echo ${language} | sed 's@^\.\+/@@'`
143
		[ -d "__tmp/languages/${lang}" ] || mkdir -p "__tmp/languages/${lang}"
144
		cp ${language}/binaries/*.qm  __tmp/languages/${lang}/
145
		cp ${language}/${PLUGMAN_INFO} __tmp/
146
		cd __tmp
147
		sed -i "s@--VERSION--@${REV}@" ${PLUGMAN_INFO}
148
		URL=${URL_PREFIX}${lang}${URL_SUFFIX}
149
		sed -i "s@--URL--@${URL}@" ${PLUGMAN_INFO}
150
		zip -r ../__trans/qutim-lang_${lang}.zip *
151
		cd ..
152
		rm -rf __tmp
153
	fi
154
done