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)
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)