Пример #1
0
def main():
  parser = argparse.ArgumentParser()
  parser.add_argument('-tzdata', required=True,
      help='The tzdata file to process')
  parser.add_argument('-output', required=True,
      help='The output directory for the dump')
  args = parser.parse_args()

  tzdata_file = args.tzdata
  output_dir = args.output

  CheckFileExists(tzdata_file, '-tzdata')
  if not os.path.exists(output_dir):
    print('Creating dir: %s'  % output_dir)
    os.mkdir(output_dir)
  i18nutil.CheckDirExists(output_dir, '-output')

  BuildDebugTools()

  SplitTzData(tzdata_file, output_dir)

  zones_dir = '%s/zones' % output_dir
  csvs_dir = '%s/csvs' % output_dir

  i18nutil.CheckDirExists(zones_dir, 'zones output dir')
  if not os.path.exists(csvs_dir):
    os.mkdir(csvs_dir)

  CreateCsvFiles(zones_dir, csvs_dir)

  print('Look in %s for all extracted files' % output_dir)
  print('Look in %s for dumped CSVs' % csvs_dir)
  sys.exit(0)
Пример #2
0
def icu4jDir():
    """Returns the location of ICU4J in the Android source tree."""
    icu4j_dir = os.path.realpath('%s/icu4j' % icuDir())
    i18nutil.CheckDirExists(icu4j_dir, 'external/icu/icu4j')
    return icu4j_dir
Пример #3
0
def icuDir():
    """Returns the location of ICU in the Android source tree."""
    android_build_top = i18nutil.GetAndroidRootOrDie()
    icu_dir = os.path.realpath('%s/external/icu' % android_build_top)
    i18nutil.CheckDirExists(icu_dir, 'external/icu')
    return icu_dir
Пример #4
0
    'asia',
    'australasia',
    'etcetera',
    'europe',
    'northamerica',
    'southamerica',
    # These two deliberately come last so they override what came
    # before (and each other).
    'backward',
    'backzone'
]

# Calculate the paths that are referred to by multiple functions.
android_build_top = i18nutil.GetAndroidRootOrDie()
timezone_dir = os.path.realpath('%s/system/timezone' % android_build_top)
i18nutil.CheckDirExists(timezone_dir, 'system/timezone')

zone_compactor_dir = os.path.realpath('%s/system/timezone/zone_compactor' %
                                      android_build_top)
i18nutil.CheckDirExists(timezone_dir, 'system/timezone/zone_zompactor')

timezone_input_data_dir = os.path.realpath('%s/input_data' % timezone_dir)

timezone_output_data_dir = '%s/output_data' % timezone_dir
i18nutil.CheckDirExists(timezone_output_data_dir, 'output_data')

tmp_dir = tempfile.mkdtemp('-tzdata')


def WriteSetupFile(extracted_iana_dir):
    """Writes the list of zones that ZoneCompactor should process."""
Пример #5
0
from __future__ import print_function

import argparse
import os
import subprocess
import sys

sys.path.append('%s/external/icu/tools' % os.environ.get('ANDROID_BUILD_TOP'))
import i18nutil


# Calculate the paths that are referred to by multiple functions.
android_build_top = i18nutil.GetAndroidRootOrDie()
timezone_dir = os.path.realpath('%s/system/timezone' % android_build_top)
i18nutil.CheckDirExists(timezone_dir, 'system/timezone')

android_host_out = i18nutil.GetAndroidHostOutOrDie()

debug_tools_dir = os.path.realpath('%s/system/timezone/debug_tools/host' % android_build_top)
i18nutil.CheckDirExists(debug_tools_dir, 'system/timezone/debug_tools/host')


def BuildDebugTools():
  subprocess.check_call(['make', '-C', android_build_top, '-j30', 'timezone_host_debug_tools'])


def SplitTzData(tzdata_file, output_dir):
  jar_file = '%s/framework/timezone_host_debug_tools.jar' % android_host_out
  subprocess.check_call(['java', '-cp', jar_file, 'ZoneSplitter', tzdata_file, output_dir])
Пример #6
0
from __future__ import print_function

import argparse
import os
import shutil
import subprocess
import sys

sys.path.append('%s/external/icu/tools' % os.environ.get('ANDROID_BUILD_TOP'))
import i18nutil

android_build_top = i18nutil.GetAndroidRootOrDie()
android_host_out_dir = i18nutil.GetAndroidHostOutOrDie()
timezone_dir = os.path.realpath('%s/system/timezone' % android_build_top)
i18nutil.CheckDirExists(timezone_dir, 'system/timezone')


def RunCreateTimeZoneDistro(properties_file, distro_output_dir):
    # Build the libraries needed.
    subprocess.check_call([
        'make', '-C', android_build_top, 'time_zone_distro_tools',
        'time_zone_distro'
    ])

    libs = ['time_zone_distro_tools', 'time_zone_distro']
    host_java_libs_dir = '%s/../common/obj/JAVA_LIBRARIES' % android_host_out_dir
    classpath_components = []
    for lib in libs:
        classpath_components.append('%s/%s_intermediates/javalib.jar' %
                                    (host_java_libs_dir, lib))
Пример #7
0
def cldrDir():
    """Returns the location of CLDR in the Android source tree."""
    android_build_top = i18nutil.GetAndroidRootOrDie()
    cldr_dir = os.path.realpath('%s/external/cldr' % android_build_top)
    i18nutil.CheckDirExists(cldr_dir, 'external/cldr')
    return cldr_dir
Пример #8
0
"""Regenerates ICU data files."""

import glob
import os
import shutil
import subprocess
import sys

import i18nutil

# Find the icu directory.
android_build_top = i18nutil.GetAndroidRootOrDie()
icu_dir = os.path.realpath('%s/external/icu' % android_build_top)
icu4c_dir = os.path.realpath('%s/icu4c/source' % icu_dir)
icu4j_dir = os.path.realpath('%s/icu4j' % icu_dir)
i18nutil.CheckDirExists(icu4c_dir, 'external/icu/icu4c/source')
i18nutil.CheckDirExists(icu4j_dir, 'external/icu/icu4j')


def PrepareIcuBuild(icu_build_dir):
    # Keep track of the original cwd so we can go back to it at the end.
    original_working_dir = os.getcwd()

    # Create a directory to run 'make' from.
    os.mkdir(icu_build_dir)
    os.chdir(icu_build_dir)

    # Build the ICU tools.
    print 'Configuring ICU tools...'
    subprocess.check_call(['%s/runConfigureICU' % icu4c_dir, 'Linux'])
    'australasia',
    'etcetera',
    'europe',
    'northamerica',
    'southamerica',
    # These two deliberately come last so they override what came
    # before (and each other).
    'backward',
    'backzone'
]

# Find the bionic directory.
android_build_top = i18nutil.GetAndroidRootOrDie()
bionic_dir = os.path.realpath('%s/bionic' % android_build_top)
bionic_libc_zoneinfo_dir = '%s/libc/zoneinfo' % bionic_dir
i18nutil.CheckDirExists(bionic_libc_zoneinfo_dir, 'bionic/libc/zoneinfo')
tools_dir = '%s/external/icu/tools' % android_build_top
i18nutil.CheckDirExists(tools_dir, 'external/icu/tools')


def GetCurrentTzDataVersion():
    return open('%s/tzdata' % bionic_libc_zoneinfo_dir).read().split(
        '\x00', 1)[0]


def WriteSetupFile():
    """Writes the list of zones that ZoneCompactor should process."""
    links = []
    zones = []
    for region in regions:
        for line in open('extracted/%s' % region):