| Index: grit/format/policy_templates/template_formatter.py
|
| ===================================================================
|
| --- grit/format/policy_templates/template_formatter.py (revision 202)
|
| +++ grit/format/policy_templates/template_formatter.py (working copy)
|
| @@ -1,73 +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.
|
| -
|
| -
|
| -import sys
|
| -from functools import partial
|
| -
|
| -from grit.format.policy_templates import policy_template_generator
|
| -from grit.format.policy_templates import writer_configuration
|
| -from grit.node import misc
|
| -from grit.node import structure
|
| -
|
| -
|
| -def GetFormatter(type):
|
| - return partial(_TemplateFormatter,
|
| - 'grit.format.policy_templates.writers.%s_writer' % type)
|
| -
|
| -
|
| -def _TemplateFormatter(writer_module_name, root, lang, output_dir):
|
| - '''Creates a template file corresponding to an <output> node of the grit
|
| - tree.
|
| -
|
| - More precisely, processes the whole grit tree for a given <output> node whose
|
| - type is one of adm, plist, plist_strings, admx, adml, doc, json, reg.
|
| - The result of processing is a policy template file with the given type and
|
| - language of the <output> node. This function does the interfacing with
|
| - grit, but the actual template-generating work is done in
|
| - policy_template_generator.PolicyTemplateGenerator.
|
| -
|
| - Args:
|
| - writer_name: A string identifying the TemplateWriter subclass used
|
| - for generating the output.
|
| - root: the <grit> root node of the grit tree.
|
| - lang: the language of outputted text, e.g.: 'en'
|
| - output_dir: The output directory, currently unused here.
|
| -
|
| - Yields the text of the template file.
|
| - '''
|
| - __import__(writer_module_name)
|
| - writer_module = sys.modules[writer_module_name]
|
| - config = writer_configuration.GetConfigurationForBuild(root.defines)
|
| - policy_data = _ParseGritNodes(root, lang)
|
| - policy_generator = \
|
| - policy_template_generator.PolicyTemplateGenerator(config, policy_data)
|
| - writer = writer_module.GetWriter(config)
|
| - yield policy_generator.GetTemplateText(writer)
|
| -
|
| -
|
| -def _ParseGritNodes(root, lang):
|
| - '''Collects the necessary information from the grit tree:
|
| - the message strings and the policy definitions.
|
| -
|
| - Args:
|
| - root: The root of the grit tree.
|
| - lang: the language of outputted text, e.g.: 'en'
|
| -
|
| - Returns:
|
| - Policy data.
|
| - '''
|
| - policy_data = None
|
| - for item in root.ActiveDescendants():
|
| - with item:
|
| - if (isinstance(item, structure.StructureNode) and
|
| - item.attrs['type'] == 'policy_template_metafile'):
|
| - assert policy_data is None
|
| - json_text = item.gatherer.Translate(
|
| - lang,
|
| - pseudo_if_not_available=item.PseudoIsAllowed(),
|
| - fallback_to_english=item.ShouldFallbackToEnglish())
|
| - policy_data = eval(json_text)
|
| - return policy_data
|
|
|