Cleanup mo packaging.

This commit is contained in:
Marco Pesenti Gritti 2007-07-29 15:20:19 +02:00
parent fe46d242f8
commit 0f17ae5d04

View File

@ -146,18 +146,26 @@ def _get_file_list(manifest):
else: else:
return _DefaultFileList() return _DefaultFileList()
def _include_mo_in_bundle(bundle_zip, bundle_name): def _get_po_list(manifest):
for langdir in os.listdir('locale'): file_list = {}
if os.path.isdir(os.path.join('locale', langdir, 'LC_MESSAGES')):
for filename in os.listdir(os.path.join('locale', langdir, po_regex = re.compile("po/(.*)\.po$")
'LC_MESSAGES')): for file_name in _get_file_list(manifest):
if filename.endswith('.mo'): match = po_regex.match(file_name)
arcname = os.path.join(bundle_name + '.activity', if match:
'locale', langdir, 'LC_MESSAGES', file_list[match.group(1)] = file_name
filename)
bundle_zip.write( return file_list
os.path.join('locale', langdir, 'LC_MESSAGES', filename),
arcname) def _get_mo_list(manifest):
mo_list = []
for lang in _get_po_list(manifest).keys():
filename = _get_service_name() + '.mo'
mo_list.append(os.path.join(_get_source_path(), 'locale',
lang, 'LC_MESSAGES', filename))
return mo_list
def cmd_dist(bundle_name, manifest): def cmd_dist(bundle_name, manifest):
cmd_genmo(bundle_name, manifest) cmd_genmo(bundle_name, manifest)
@ -165,13 +173,13 @@ def cmd_dist(bundle_name, manifest):
zipname = _get_package_name(bundle_name) zipname = _get_package_name(bundle_name)
bundle_zip = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED) bundle_zip = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED)
base_dir = bundle_name + '.activity'
for filename in file_list: for filename in file_list:
arcname = os.path.join(bundle_name + '.activity', filename) bundle_zip.write(filename, os.path.join(base_dir, filename))
bundle_zip.write(filename, arcname)
if os.path.exists('locale'): for filename in _get_mo_list(manifest):
_include_mo_in_bundle(bundle_zip, bundle_name) bundle_zip.write(filename, os.path.join(base_dir, filename))
bundle_zip.close() bundle_zip.close()
@ -207,32 +215,28 @@ def cmd_genpot(bundle_name, manifest):
if retcode: if retcode:
print 'ERROR - xgettext failed with return code %i.' % retcode print 'ERROR - xgettext failed with return code %i.' % retcode
po_regex = re.compile("po/.*\.po$") for file_name in _get_po_list(manifest).values():
for file_name in _get_file_list(manifest): args = [ 'msgmerge', '-U', file_name, pot_file ]
if po_regex.match(file_name): retcode = subprocess.call(args)
args = [ 'msgmerge', '-U', file_name, pot_file ] if retcode:
retcode = subprocess.call(args) print 'ERROR - msgmerge failed with return code %i.' % retcode
if retcode:
print 'ERROR - msgmerge failed with return code %i.' % retcode
def cmd_genmo(bundle_name, manifest): def cmd_genmo(bundle_name, manifest):
source_path = _get_source_path() source_path = _get_source_path()
po_regex = re.compile("po/(.*)\.po$") po_list = _get_po_list(manifest)
for file_name in _get_file_list(manifest): for lang in po_list.keys():
match = po_regex.match(file_name) file_name = po_list[lang]
if match:
lang = match.group(1)
mo_path = os.path.join(source_path, 'locale', lang, 'LC_MESSAGES') mo_path = os.path.join(source_path, 'locale', lang, 'LC_MESSAGES')
if not os.path.isdir(mo_path): if not os.path.isdir(mo_path):
os.makedirs(mo_path) os.makedirs(mo_path)
mo_file = os.path.join(mo_path, "%s.mo" % _get_service_name()) mo_file = os.path.join(mo_path, "%s.mo" % _get_service_name())
args = ["msgfmt", "--output-file=%s" % mo_file, file_name] args = ["msgfmt", "--output-file=%s" % mo_file, file_name]
retcode = subprocess.call(args) retcode = subprocess.call(args)
if retcode: if retcode:
print 'ERROR - msgfmt failed with return code %i.' % retcode print 'ERROR - msgfmt failed with return code %i.' % retcode
def cmd_release(bundle_name, manifest): def cmd_release(bundle_name, manifest):
if not os.path.isdir('.git'): if not os.path.isdir('.git'):