예제 #1
0
 def __call__(self):
     scm.tested_for_scms(('svn', 'gitsvn', 'git'), '.')
     scm.require_package_root_cwd()
     self.check_conditions()
     package_name = scm.get_package_name('.')
     if self.options.domain:
         domain = self.options.domain
     else:
         domain = package_name
     package_root = scm.get_package_root_path('.')
     package_dir = os.path.join(package_root, *package_name.split('.'))
     pot_path = os.path.join(self.locales_dir, '%s.pot' % domain)
     output.part_title('Rebuilding pot file at %s' % pot_path)
     # rebuild
     cmd = ['%s rebuild-pot' % self.i18ndude]
     cmd.append('--pot %s' % pot_path)
     # manual file
     manual_file = os.path.join(self.locales_dir, '%s-manual.pot' % domain)
     if os.path.exists(manual_file):
         print '  merging manual pot file:', manual_file
         cmd.append('--merge %s' % manual_file)
     cmd.append('--create %s %s' % (
             domain,
             package_dir,
             ))
     cmd = ' \\\n'.join(cmd)
     runcmd(cmd)
예제 #2
0
 def check_conditions(self):
     self.i18ndude = 'i18ndude'
     # we should be in a local repository
     try:
         package_name = scm.get_package_name('.')
         print '  using package name:', package_name
     except scm.NotAScm:
         output.error('Not in a SVN- or GIT-Checkout, unable to guess '
                      'package name', exit=1)
     # get package root
     package_root = scm.get_package_root_path('.')
     print '  using package root path:', package_root
     # check locales directory
     self.locales_dir = os.path.abspath(os.path.join(
             package_root,
             '/'.join(package_name.split('.')),
             'locales',
             ))
     print '  using locales dir:', self.locales_dir
     if not os.path.isdir(self.locales_dir):
         runcmd('mkdir -p %s' % self.locales_dir)