root/gaphor/tags/gaphor-0.12.0/utils/command/build_mo.py

Revision 1190, 1.8 kB (checked in by arj..@yirdis.nl, 2 years ago)

moved data/ inside gaphor/ package: easier accessible when installed as egg

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 # vim:sw=4:et
2 """build_mo
3
4 Generate .mo files from po files.
5 """
6
7 from distutils.core import Command
8 from distutils.dep_util import newer
9 import os.path
10 import msgfmt
11
12
13 class build_mo(Command):
14
15     description = 'Create .mo files from .po files'
16
17     # List of option tuples: long name, short name (None if no short
18     # name), and help string.
19     user_options = [('build-dir=', None,
20                      'Directory to build locale files'),
21                     ('force', 'f', 'Force creation of .mo files'),
22                     ('all-linguas', None, ''),
23                    ]
24
25     boolean_options = ['force']
26
27     def initialize_options (self):
28         self.build_dir = None
29         self.force = None
30         self.all_linguas = None
31
32     def finalize_options (self):
33         self.set_undefined_options('build',
34                                    ('force', 'force'))
35         if self.build_dir is None:
36             self.set_undefined_options('build',
37                                        ('build_lib', 'build_dir'))
38             self.build_dir = os.path.join(self.build_dir, 'gaphor', 'data', 'locale')
39
40         self.all_linguas = self.all_linguas.split(',')
41
42     def run (self):
43         """Run msgfmt.make() on all_linguas."""
44         if not self.all_linguas:
45             return
46
47         for lingua in self.all_linguas:
48             pofile = os.path.join('po', lingua + '.po')
49             outdir = os.path.join(self.build_dir, lingua, 'LC_MESSAGES')
50             self.mkpath(outdir)
51             outfile = os.path.join(outdir, 'gaphor.mo')
52             if self.force or newer(pofile, outfile):
53                 print 'converting %s -> %s' % (pofile, outfile)
54                 msgfmt.make(pofile, outfile)
55             else:
56                 print 'not converting %s (output up-to-date)' % pofile
57
58 from distutils.command.build import build
59 build.sub_commands.append(('build_mo', None))
60
61
62
Note: See TracBrowser for help on using the browser.