Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(245)

Unified Diff: grit/grit_runner.py

Issue 1442863002: Remove contents of grit's SVN repository. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « grit/grit-todo.xml ('k') | grit/grit_runner_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: grit/grit_runner.py
===================================================================
--- grit/grit_runner.py (revision 202)
+++ grit/grit_runner.py (working copy)
@@ -1,272 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Command processor for GRIT. This is the script you invoke to run the various
-GRIT tools.
-"""
-
-import os
-import sys
-if __name__ == '__main__':
- sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
-
-import getopt
-
-from grit import util
-
-import grit.extern.FP
-
-# Tool info factories; these import only within each factory to avoid
-# importing most of the GRIT code until required.
-def ToolFactoryBuild():
- import grit.tool.build
- return grit.tool.build.RcBuilder()
-
-def ToolFactoryBuildInfo():
- import grit.tool.buildinfo
- return grit.tool.buildinfo.DetermineBuildInfo()
-
-def ToolFactoryCount():
- import grit.tool.count
- return grit.tool.count.CountMessage()
-
-def ToolFactoryDiffStructures():
- import grit.tool.diff_structures
- return grit.tool.diff_structures.DiffStructures()
-
-def ToolFactoryMenuTranslationsFromParts():
- import grit.tool.menu_from_parts
- return grit.tool.menu_from_parts.MenuTranslationsFromParts()
-
-def ToolFactoryNewGrd():
- import grit.tool.newgrd
- return grit.tool.newgrd.NewGrd()
-
-def ToolFactoryResizeDialog():
- import grit.tool.resize
- return grit.tool.resize.ResizeDialog()
-
-def ToolFactoryRc2Grd():
- import grit.tool.rc2grd
- return grit.tool.rc2grd.Rc2Grd()
-
-def ToolFactoryTest():
- import grit.tool.test
- return grit.tool.test.TestTool()
-
-def ToolFactoryTranslationToTc():
- import grit.tool.transl2tc
- return grit.tool.transl2tc.TranslationToTc()
-
-def ToolFactoryUnit():
- import grit.tool.unit
- return grit.tool.unit.UnitTestTool()
-
-def ToolFactoryXmb():
- import grit.tool.xmb
- return grit.tool.xmb.OutputXmb()
-
-def ToolAndroid2Grd():
- import grit.tool.android2grd
- return grit.tool.android2grd.Android2Grd()
-
-# Keys for the following map
-_FACTORY = 1
-_REQUIRES_INPUT = 2
-_HIDDEN = 3 # optional key - presence indicates tool is hidden
-
-# Maps tool names to the tool's module. Done as a list of (key, value) tuples
-# instead of a map to preserve ordering.
-_TOOLS = [
- ['build', { _FACTORY : ToolFactoryBuild, _REQUIRES_INPUT : True }],
- ['buildinfo', { _FACTORY : ToolFactoryBuildInfo, _REQUIRES_INPUT : True }],
- ['count', { _FACTORY : ToolFactoryCount, _REQUIRES_INPUT : True }],
- ['menufromparts', {
- _FACTORY: ToolFactoryMenuTranslationsFromParts,
- _REQUIRES_INPUT : True, _HIDDEN : True }],
- ['newgrd', { _FACTORY : ToolFactoryNewGrd, _REQUIRES_INPUT : False }],
- ['rc2grd', { _FACTORY : ToolFactoryRc2Grd, _REQUIRES_INPUT : False }],
- ['resize', {
- _FACTORY : ToolFactoryResizeDialog, _REQUIRES_INPUT : True }],
- ['sdiff', { _FACTORY : ToolFactoryDiffStructures,
- _REQUIRES_INPUT : False }],
- ['test', {
- _FACTORY: ToolFactoryTest, _REQUIRES_INPUT : True,
- _HIDDEN : True }],
- ['transl2tc', { _FACTORY : ToolFactoryTranslationToTc,
- _REQUIRES_INPUT : False }],
- ['unit', { _FACTORY : ToolFactoryUnit, _REQUIRES_INPUT : False }],
- ['xmb', { _FACTORY : ToolFactoryXmb, _REQUIRES_INPUT : True }],
- ['android2grd', {
- _FACTORY: ToolAndroid2Grd,
- _REQUIRES_INPUT : False }],
-]
-
-
-def PrintUsage():
- tool_list = ''
- for (tool, info) in _TOOLS:
- if not _HIDDEN in info.keys():
- tool_list += ' %-12s %s\n' % (tool, info[_FACTORY]().ShortDescription())
-
- # TODO(joi) Put these back into the usage when appropriate:
- #
- # -d Work disconnected. This causes GRIT not to attempt connections with
- # e.g. Perforce.
- #
- # -c Use the specified Perforce CLIENT when talking to Perforce.
- print """GRIT - the Google Resource and Internationalization Tool
-
-Usage: grit [GLOBALOPTIONS] TOOL [args to tool]
-
-Global options:
-
- -i INPUT Specifies the INPUT file to use (a .grd file). If this is not
- specified, GRIT will look for the environment variable GRIT_INPUT.
- If it is not present either, GRIT will try to find an input file
- named 'resource.grd' in the current working directory.
-
- -h MODULE Causes GRIT to use MODULE.UnsignedFingerPrint instead of
- grit.extern.FP.UnsignedFingerprint. MODULE must be
- available somewhere in the PYTHONPATH search path.
-
- -v Print more verbose runtime information.
-
- -x Print extremely verbose runtime information. Implies -v
-
- -p FNAME Specifies that GRIT should profile its execution and output the
- results to the file FNAME.
-
-Tools:
-
- TOOL can be one of the following:
-%s
- For more information on how to use a particular tool, and the specific
- arguments you can send to that tool, execute 'grit help TOOL'
-""" % (tool_list)
-
-
-class Options(object):
- """Option storage and parsing."""
-
- def __init__(self):
- self.disconnected = False
- self.client = ''
- self.hash = None
- self.input = None
- self.verbose = False
- self.extra_verbose = False
- self.output_stream = sys.stdout
- self.profile_dest = None
- self.psyco = False
-
- def ReadOptions(self, args):
- """Reads options from the start of args and returns the remainder."""
- (opts, args) = getopt.getopt(args, 'g:qdvxc:i:p:h:', ('psyco',))
- for (key, val) in opts:
- if key == '-d': self.disconnected = True
- elif key == '-c': self.client = val
- elif key == '-h': self.hash = val
- elif key == '-i': self.input = val
- elif key == '-v':
- self.verbose = True
- util.verbose = True
- elif key == '-x':
- self.verbose = True
- util.verbose = True
- self.extra_verbose = True
- util.extra_verbose = True
- elif key == '-p': self.profile_dest = val
- elif key == '--psyco': self.psyco = True
-
- if not self.input:
- if 'GRIT_INPUT' in os.environ:
- self.input = os.environ['GRIT_INPUT']
- else:
- self.input = 'resource.grd'
-
- return args
-
- def __repr__(self):
- return '(disconnected: %d, verbose: %d, client: %s, input: %s)' % (
- self.disconnected, self.verbose, self.client, self.input)
-
-
-def _GetToolInfo(tool):
- """Returns the info map for the tool named 'tool' or None if there is no
- such tool."""
- matches = [t for t in _TOOLS if t[0] == tool]
- if not matches:
- return None
- else:
- return matches[0][1]
-
-
-def Main(args):
- """Parses arguments and does the appropriate thing."""
- util.ChangeStdoutEncoding()
-
- if sys.version_info < (2, 6):
- print "GRIT requires Python 2.6 or later."
- return 2
- elif not args or (len(args) == 1 and args[0] == 'help'):
- PrintUsage()
- return 0
- elif len(args) == 2 and args[0] == 'help':
- tool = args[1].lower()
- if not _GetToolInfo(tool):
- print "No such tool. Try running 'grit help' for a list of tools."
- return 2
-
- print ("Help for 'grit %s' (for general help, run 'grit help'):\n"
- % (tool))
- print _GetToolInfo(tool)[_FACTORY]().__doc__
- return 0
- else:
- options = Options()
- args = options.ReadOptions(args) # args may be shorter after this
- if not args:
- print "No tool provided. Try running 'grit help' for a list of tools."
- return 2
- tool = args[0]
- if not _GetToolInfo(tool):
- print "No such tool. Try running 'grit help' for a list of tools."
- return 2
-
- try:
- if _GetToolInfo(tool)[_REQUIRES_INPUT]:
- os.stat(options.input)
- except OSError:
- print ('Input file %s not found.\n'
- 'To specify a different input file:\n'
- ' 1. Use the GRIT_INPUT environment variable.\n'
- ' 2. Use the -i command-line option. This overrides '
- 'GRIT_INPUT.\n'
- ' 3. Specify neither GRIT_INPUT or -i and GRIT will try to load '
- "'resource.grd'\n"
- ' from the current directory.' % options.input)
- return 2
-
- if options.psyco:
- # Psyco is a specializing JIT for Python. Early tests indicate that it
- # could speed up GRIT (at the expense of more memory) for large GRIT
- # compilations. See http://psyco.sourceforge.net/
- import psyco
- psyco.profile()
-
- if options.hash:
- grit.extern.FP.UseUnsignedFingerPrintFromModule(options.hash)
-
- toolobject = _GetToolInfo(tool)[_FACTORY]()
- if options.profile_dest:
- import hotshot
- prof = hotshot.Profile(options.profile_dest)
- prof.runcall(toolobject.Run, options, args[1:])
- else:
- toolobject.Run(options, args[1:])
-
-
-if __name__ == '__main__':
- sys.exit(Main(sys.argv[1:]))
« no previous file with comments | « grit/grit-todo.xml ('k') | grit/grit_runner_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698