File: update_po.sh

package info (click to toggle)
libmojomojo-perl 1.01%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 4,272 kB
  • ctags: 879
  • sloc: perl: 14,055; sh: 145; xml: 120; ruby: 6; makefile: 2
file content (155 lines) | stat: -rwxr-xr-x 2,865 bytes parent folder | download | duplicates (5)
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#!/bin/sh

# Default setting
PERL_DEFAULT=`which perl`
MOJOMOJO_DIR="."
 
# Process command line options
while getopts ":hl:m:jp:" Option
do
	case $Option in
		# MojoMojo directory
		m )
			MOJOMOJO_DIR=$OPTARG
			;;
		# Help option
		h )
			perldoc $0
			exit
			;;
		# JOSN only
		j )
			JSON_ONLY=1
			;;
		# Language
		l )
			langs=$OPTARG
			;;
		# perl path
		p )
			PERL=$OPTARG
			;;
		# Unknow option
		* ) 
			echo Unknow option. 
			echo See:
			echo "   ./$0 -h"
			echo for usage
			exit 1
			;;
	esac
done

# Check perl executable
if [ -z "$PERL" ] || [ ! -x "$PERL" ]; then
	PERL=$PERL_DEFAULT
fi

# Check MojoMojo dir
if [ ! -d "$MOJOMOJO_DIR/lib/MojoMojo/I18N" ]; then
	echo "$MOJOMOJO_DIR directory: lib/MojoMojo/I18N not found."
	exit 1
else
	cd $MOJOMOJO_DIR
	MOJOMOJO_DIR="."
fi

# Check language(s)
if [ -z "$langs" ]
then
	langs=$(ls $MOJOMOJO_DIR/lib/MojoMojo/I18N|grep ^..\.po$)
else
	langs=$langs.po
fi

# Process .po files
for lang in $langs ; do
	lang_=`echo $lang|sed 's/.po//'`
	echo "lang: $lang_"
	if [ -z "$JSON_ONLY" ]; then
		$PERL -Ilib `which xgettext.pl` -now -D $MOJOMOJO_DIR/lib/MojoMojo $MOJOMOJO_DIR/lib/MojoMojo.pm -D $MOJOMOJO_DIR/root/forms -D $MOJOMOJO_DIR/root/base -P perl=* -P tt2=* -P yaml=yml -P formfu=* -P text=* -o $MOJOMOJO_DIR/lib/MojoMojo/I18N/$lang_.po
		$PERL -Ilib `which xgettext.pl` -now -D $MOJOMOJO_DIR/root/static/js -P perl=* -P tt2=* -P yaml=yml -P formfu=* -P text=* 	-o $MOJOMOJO_DIR/lib/MojoMojo/I18N/$lang_.js.po
	fi
	$PERL -Ilib $MOJOMOJO_DIR/script/po2json.pl $MOJOMOJO_DIR/lib/MojoMojo/I18N/$lang_.js.po $MOJOMOJO_DIR/root/static/json/$lang_.po.json
done

# All is OK
exit 0

<<PODUSAGE

=pod

=head1 NAME

update_po.sh - create or update .po file

=head1 SYNOPSIS

   %> update_po.sh [command] [options]

=head1 DESCRIPTION

F<update_po.sh> is a shell script that lets you to create or update .po file.

=head1 ARGUMENTS

=over 4

=item * C<-l> I<language>

.po langunage file. Default to all existing .po files. 

=item * C<-m> I<path>

MojoMojo directory. 

=back

=head1 OPTIONS

=over 4


=item * C<-p> I<path>

perl binary executable path. You can also set C<PERL> environment variable. 
For example: 

   %> PERL=/path/to/my/perl ./update_po.sh ...

=item * C<-j>

Create json file only.

=item * C<-h>

Print out this help page and exit.

=back

=head1 EXAMPLES

   %> sh update_po.sh 

   %> sh update_po.sh -l it -p /path/to/perl-5.11/bin/perl
   
   %> sh update_po.sh -m /my/lib/MoyoMoyo -l de

=head1 AUTHOR

Robert Litwiniec (basic script)
Enrico Sorcinelli (script improvements and POD)

=head1 BUGS

Send bug reports and comments to: <...>.
In each report please include the version module, the Perl version, the Apache,
the mod_perl version and your SO. If the problem is  browser dependent please
include also browser name and version.

=head1 SEE ALSO

MojoMojo

PODUSAGE