1111Usage: msgfmt.py [OPTIONS] filename.po
1212
1313Options:
14+ -o file
15+ --output-file=file
16+ Specify the output file to write to. If omitted, output will go to a
17+ file named filename.mo (based off the input file name).
18+
1419 -h
1520 --help
1621 Print this message and exit.
1722
1823 -V
1924 --version
2025 Display version information and exit.
21-
2226"""
2327
2428import sys
29+ import os
2530import getopt
2631import struct
2732import array
2833
29- __version__ = "1.0 "
34+ __version__ = "1.1 "
3035
3136MESSAGES = {}
3237
@@ -91,17 +96,18 @@ def generate():
9196
9297
9398
94- def make (filename ):
99+ def make (filename , outfile ):
95100 ID = 1
96101 STR = 2
97102
98- # Compute .mo name from .po name
103+ # Compute .mo name from .po name and arguments
99104 if filename .endswith ('.po' ):
100105 infile = filename
101- outfile = filename [:- 2 ] + 'mo'
102106 else :
103107 infile = filename + '.po'
104- outfile = filename + '.mo'
108+ if outfile is None :
109+ outfile = os .path .splitext (infile )[0 ] + '.mo'
110+
105111 try :
106112 lines = open (infile ).readlines ()
107113 except IOError , msg :
@@ -159,7 +165,6 @@ def make(filename):
159165 # Compute output
160166 output = generate ()
161167
162- # Save output
163168 try :
164169 open (outfile ,"wb" ).write (output )
165170 except IOError ,msg :
@@ -169,25 +174,29 @@ def make(filename):
169174
170175def main ():
171176 try :
172- opts , args = getopt .getopt (sys .argv [1 :], 'hV' , ['help' ,'version' ])
177+ opts , args = getopt .getopt (sys .argv [1 :], 'hVo:' ,
178+ ['help' , 'version' , 'output-file=' ])
173179 except getopt .error , msg :
174180 usage (1 , msg )
175181
182+ outfile = None
176183 # parse options
177184 for opt , arg in opts :
178185 if opt in ('-h' , '--help' ):
179186 usage (0 )
180187 elif opt in ('-V' , '--version' ):
181188 print >> sys .stderr , "msgfmt.py" , __version__
182189 sys .exit (0 )
190+ elif opt in ('-o' , '--output-file' ):
191+ outfile = arg
183192 # do it
184193 if not args :
185194 print >> sys .stderr , 'No input file given'
186195 print >> sys .stderr , "Try `msgfmt --help' for more information."
187196 return
188197
189198 for filename in args :
190- make (filename )
199+ make (filename , outfile )
191200
192201
193202if __name__ == '__main__' :
0 commit comments