Viewing file: InstallL10n.py (2.03 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import os from distutils.core import Command
class InstallL10n(Command):
command_name = 'install_l10n'
description = "install binary message catalogs"
user_options = [ ('force', 'f', "force installation (overwrite existing files)"), ('skip-build', None, "skip the build steps"), ]
boolean_options = ['force', 'skip-build']
def initialize_options(self): self.install_dir = None self.force = None self.skip_build = None return
def finalize_options (self): self.set_undefined_options('install', ('install_l10n', 'install_dir'), ('force', 'force'), ('skip_build', 'skip_build'), ) return
def run (self): if not self.distribution.l10n: # Nothing to do return if not self.skip_build: self.run_command('build_l10n')
for src, dst in self.get_inputs_outputs(): # Create the destination directory if needed self.mkpath(os.path.dirname(dst))
# Copy the file self.copy_file(src, dst) return
# -- utility functions ---------------------------------------------
def get_inputs_outputs(self): build_cmd = self.get_finalized_command('build_l10n') build_dir = build_cmd.build_dir build_files = build_cmd.get_outputs() prefix_len = len(build_dir) + len(os.sep) paired = [] for source in build_files: # Trim off the build directory outfile = os.path.join(self.install_dir, source[prefix_len:]) paired.append((source, outfile)) return paired # -- external interfaces -------------------------------------------
def get_inputs(self): return [ src for (src, dst) in self.get_inputs_outputs() ]
def get_outputs(self): return [ dst for (src, dst) in self.get_inputs_outputs() ]
|