15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/env python 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file. 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"""Helper script to repack paks for a list of locales. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Gyp doesn't have any built-in looping capability, so this just provides a way to 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)loop over a list of locales when repacking pak files, thus avoiding a 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)proliferation of mostly duplicate, cut-n-paste gyp actions. 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)""" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import optparse 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import os 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import sys 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', '..', 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'tools', 'grit')) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)from grit.format import data_pack 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The gyp "branding" variable. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BRANDING = None 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Some build paths defined by gyp. 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GRIT_DIR = None 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SHARE_INT_DIR = None 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)INT_DIR = None 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The target platform. If it is not defined, sys.platform will be used. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OS = None 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Extra input files. 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EXTRA_INPUT_FILES = [] 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Usage(Exception): 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def __init__(self, msg): 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self.msg = msg 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def calc_output(locale): 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """Determine the file that will be generated for the given locale.""" 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(INTERMEDIATE_DIR)/repack/da.pak', 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # For Fake Bidi, generate it at a fixed path so that tests can safely 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # reference it. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if locale == 'fake-bidi': 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return '%s/%s.pak' % (INT_DIR, locale) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if OS == 'mac' or OS == 'ios': 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # For Cocoa to find the locale at runtime, it needs to use '_' instead 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # of '-' (http://crbug.com/20441). Also, 'en-US' should be represented 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # simply as 'en' (http://crbug.com/19165, http://crbug.com/25578). 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if locale == 'en-US': 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) locale = 'en' 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return '%s/repack/%s.lproj/locale.pak' % (INT_DIR, locale.replace('-', '_')) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else: 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return os.path.join(INT_DIR, 'repack', locale + '.pak') 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def calc_inputs(locale): 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """Determine the files that need processing for the given locale.""" 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs = [] 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(grit_out_dir)/generated_resources_da.pak' 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append(os.path.join(GRIT_DIR, 'generated_resources_%s.pak' % locale)) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(grit_out_dir)/locale_settings_da.pak' 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append(os.path.join(GRIT_DIR, 'locale_settings_%s.pak' % locale)) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(grit_out_dir)/platform_locale_settings_da.pak' 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append(os.path.join(GRIT_DIR, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'platform_locale_settings_%s.pak' % locale)) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 727d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) #e.g. '<(SHARED_INTERMEDIATE_DIR)/components/strings/ 737d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) # component_strings_da.pak', 747d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) inputs.append(os.path.join(SHARE_INT_DIR, 'components', 'strings', 757d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 'component_strings_%s.pak' % locale)) 7690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if OS != 'ios': 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_strings_da.pak' 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append(os.path.join(SHARE_INT_DIR, 'webkit', 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'webkit_strings_%s.pak' % locale)) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(SHARED_INTERMEDIATE_DIR)/ui/ui_strings_da.pak', 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append(os.path.join(SHARE_INT_DIR, 'ui', 'ui_strings', 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'ui_strings_%s.pak' % locale)) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(SHARED_INTERMEDIATE_DIR)/ash_strings/ash_strings_da.pak', 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append(os.path.join(SHARE_INT_DIR, 'ash_strings', 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'ash_strings_%s.pak' % locale)) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 90868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) #e.g. '<(SHARED_INTERMEDIATE_DIR)/device/bluetooth/strings/ 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) # device_bluetooth_strings_da.pak', 92868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) inputs.append(os.path.join(SHARE_INT_DIR, 'device', 'bluetooth', 'strings', 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'device_bluetooth_strings_%s.pak' % locale)) 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(SHARED_INTERMEDIATE_DIR)/ui/app_locale_settings_da.pak', 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append(os.path.join(SHARE_INT_DIR, 'ui', 'app_locale_settings', 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'app_locale_settings_%s.pak' % locale)) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #e.g. '<(grit_out_dir)/google_chrome_strings_da.pak' 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # or 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # '<(grit_out_dir)/chromium_strings_da.pak' 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append(os.path.join( 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GRIT_DIR, '%s_strings_%s.pak' % (BRANDING, locale))) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add any extra input files. 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for extra_file in EXTRA_INPUT_FILES: 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs.append('%s_%s.pak' % (extra_file, locale)) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return inputs 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def list_outputs(locales): 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """Returns the names of files that will be generated for the given locales. 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This is to provide gyp the list of output files, so build targets can 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) properly track what needs to be built. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """ 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) outputs = [] 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for locale in locales: 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) outputs.append(calc_output(locale)) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Quote each element so filename spaces don't mess up gyp's attempt to parse 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # it into a list. 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return " ".join(['"%s"' % x for x in outputs]) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def list_inputs(locales): 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """Returns the names of files that will be processed for the given locales. 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This is to provide gyp the list of input files, so build targets can properly 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) track their prerequisites. 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """ 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs = [] 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for locale in locales: 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs += calc_inputs(locale) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Quote each element so filename spaces don't mess up gyp's attempt to parse 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # it into a list. 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return " ".join(['"%s"' % x for x in inputs]) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def repack_locales(locales): 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """ Loop over and repack the given locales.""" 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for locale in locales: 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs = [] 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inputs += calc_inputs(locale) 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output = calc_output(locale) 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) data_pack.DataPack.RePack(output, inputs) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def DoMain(argv): 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) global BRANDING 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) global GRIT_DIR 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) global SHARE_INT_DIR 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) global INT_DIR 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) global OS 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) global EXTRA_INPUT_FILES 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser = optparse.OptionParser("usage: %prog [options] locales") 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.add_option("-i", action="store_true", dest="inputs", default=False, 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="Print the expected input file list, then exit.") 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.add_option("-o", action="store_true", dest="outputs", default=False, 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="Print the expected output file list, then exit.") 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.add_option("-g", action="store", dest="grit_dir", 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="GRIT build files output directory.") 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.add_option("-x", action="store", dest="int_dir", 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="Intermediate build files output directory.") 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.add_option("-s", action="store", dest="share_int_dir", 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="Shared intermediate build files output directory.") 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.add_option("-b", action="store", dest="branding", 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="Branding type of this build.") 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.add_option("-e", action="append", dest="extra_input", default=[], 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="Full path to an extra input pak file without the\ 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) locale suffix and \".pak\" extension.") 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.add_option("-p", action="store", dest="os", 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="The target OS. (e.g. mac, linux, win, etc.)") 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) options, locales = parser.parse_args(argv) 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if not locales: 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.error('Please specificy at least one locale to process.\n') 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_inputs = options.inputs 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_outputs = options.outputs 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GRIT_DIR = options.grit_dir 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INT_DIR = options.int_dir 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SHARE_INT_DIR = options.share_int_dir 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BRANDING = options.branding 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXTRA_INPUT_FILES = options.extra_input 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OS = options.os 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if not OS: 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if sys.platform == 'darwin': 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OS = 'mac' 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif sys.platform.startswith('linux'): 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OS = 'linux' 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif sys.platform in ('cygwin', 'win32'): 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OS = 'win' 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else: 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OS = sys.platform 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if not (GRIT_DIR and INT_DIR and SHARE_INT_DIR): 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.error('Please specify all of "-g" and "-x" and "-s".\n') 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if print_inputs and print_outputs: 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.error('Please specify only one of "-i" or "-o".\n') 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Need to know the branding, unless we're just listing the outputs. 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if not print_outputs and not BRANDING: 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parser.error('Please specify "-b" to determine the input files.\n') 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if print_inputs: 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return list_inputs(locales) 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if print_outputs: 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return list_outputs(locales) 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return repack_locales(locales) 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if __name__ == '__main__': 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) results = DoMain(sys.argv[1:]) 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if results: 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print results 219