Index: grit/format/policy_templates/policy_template_generator.py |
diff --git a/grit/format/policy_templates/policy_template_generator.py b/grit/format/policy_templates/policy_template_generator.py |
deleted file mode 100644 |
index a1eb123ddda0d5560dbd729ac0add2dc61bb1e99..0000000000000000000000000000000000000000 |
--- a/grit/format/policy_templates/policy_template_generator.py |
+++ /dev/null |
@@ -1,154 +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 copy |
- |
- |
-class PolicyTemplateGenerator: |
- '''Generates template text for a particular platform. |
- |
- This class is used to traverse a JSON structure from a .json template |
- definition metafile and merge GUI message string definitions that come |
- from a .grd resource tree onto it. After this, it can be used to output |
- this data to policy template files using TemplateWriter objects. |
- ''' |
- |
- def _ImportMessage(self, msg_txt): |
- msg_txt = msg_txt.decode('utf-8') |
- # Replace the placeholder of app name. |
- msg_txt = msg_txt.replace('$1', self._config['app_name']) |
- msg_txt = msg_txt.replace('$2', self._config['os_name']) |
- msg_txt = msg_txt.replace('$3', self._config['frame_name']) |
- # Strip spaces and escape newlines. |
- lines = msg_txt.split('\n') |
- lines = [line.strip() for line in lines] |
- return "\n".join(lines) |
- |
- def __init__(self, config, policy_data): |
- '''Initializes this object with all the data necessary to output a |
- policy template. |
- |
- Args: |
- messages: An identifier to string dictionary of all the localized |
- messages that might appear in the policy template. |
- policy_definitions: The list of defined policies and groups, as |
- parsed from the policy metafile. Note that this list is passed by |
- reference and its contents are modified. |
- See chrome/app/policy.policy_templates.json for description and |
- content. |
- ''' |
- # List of all the policies: |
- self._policy_data = copy.deepcopy(policy_data) |
- # Localized messages to be inserted to the policy_definitions structure: |
- self._messages = self._policy_data['messages'] |
- self._config = config |
- for key in self._messages.keys(): |
- self._messages[key]['text'] = self._ImportMessage( |
- self._messages[key]['text']) |
- self._policy_definitions = self._policy_data['policy_definitions'] |
- self._ProcessPolicyList(self._policy_definitions) |
- |
- def _ProcessSupportedOn(self, supported_on): |
- '''Parses and converts the string items of the list of supported platforms |
- into dictionaries. |
- |
- Args: |
- supported_on: The list of supported platforms. E.g.: |
- ['chrome.win:8-10', 'chrome_frame:10-'] |
- |
- Returns: |
- supported_on: The list with its items converted to dictionaries. E.g.: |
- [{ |
- 'product': 'chrome', |
- 'platform': 'win', |
- 'since_version': '8', |
- 'until_version': '10' |
- }, { |
- 'product': 'chrome_frame', |
- 'platform': 'win', |
- 'since_version': '10', |
- 'until_version': '' |
- }] |
- ''' |
- result = [] |
- for supported_on_item in supported_on: |
- product_platform_part, version_part = supported_on_item.split(':') |
- |
- if '.' in product_platform_part: |
- product, platform = product_platform_part.split('.') |
- if platform == '*': |
- # e.g.: 'chrome.*:8-10' |
- platforms = ['linux', 'mac', 'win'] |
- else: |
- # e.g.: 'chrome.win:-10' |
- platforms = [platform] |
- else: |
- # e.g.: 'chrome_frame:7-' |
- product, platform = { |
- 'android': ('chrome', 'android'), |
- 'chrome_os': ('chrome_os', 'chrome_os'), |
- 'chrome_frame': ('chrome_frame', 'win'), |
- 'ios': ('chrome', 'ios'), |
- }[product_platform_part] |
- platforms = [platform] |
- since_version, until_version = version_part.split('-') |
- result.append({ |
- 'product': product, |
- 'platforms': platforms, |
- 'since_version': since_version, |
- 'until_version': until_version |
- }) |
- return result |
- |
- def _ProcessPolicy(self, policy): |
- '''Processes localized message strings in a policy or a group. |
- Also breaks up the content of 'supported_on' attribute into a list. |
- |
- Args: |
- policy: The data structure of the policy or group, that will get message |
- strings here. |
- ''' |
- policy['desc'] = self._ImportMessage(policy['desc']) |
- policy['caption'] = self._ImportMessage(policy['caption']) |
- if 'label' in policy: |
- policy['label'] = self._ImportMessage(policy['label']) |
- |
- if policy['type'] == 'group': |
- self._ProcessPolicyList(policy['policies']) |
- elif policy['type'] in ('string-enum', 'int-enum', 'string-enum-list'): |
- # Iterate through all the items of an enum-type policy, and add captions. |
- for item in policy['items']: |
- item['caption'] = self._ImportMessage(item['caption']) |
- if policy['type'] != 'group': |
- if not 'label' in policy: |
- # If 'label' is not specified, then it defaults to 'caption': |
- policy['label'] = policy['caption'] |
- policy['supported_on'] = self._ProcessSupportedOn(policy['supported_on']) |
- |
- def _ProcessPolicyList(self, policy_list): |
- '''Adds localized message strings to each item in a list of policies and |
- groups. Also breaks up the content of 'supported_on' attributes into lists |
- of dictionaries. |
- |
- Args: |
- policy_list: A list of policies and groups. Message strings will be added |
- for each item and to their child items, recursively. |
- ''' |
- for policy in policy_list: |
- self._ProcessPolicy(policy) |
- |
- def GetTemplateText(self, template_writer): |
- '''Generates the text of the template from the arguments given |
- to the constructor, using a given TemplateWriter. |
- |
- Args: |
- template_writer: An object implementing TemplateWriter. Its methods |
- are called here for each item of self._policy_groups. |
- |
- Returns: |
- The text of the generated template. |
- ''' |
- return template_writer.WriteTemplate(self._policy_data) |