diff options
author | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-05 22:25:16 +0000 |
---|---|---|
committer | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-05 22:25:16 +0000 |
commit | 41bd0c83bac4f0372abbc3a0628df9299f80b704 (patch) | |
tree | 606f8b311c7071393d84618833fed354aaddeb38 /chrome/tools | |
parent | cbf731104dec6dbb5de44d6edefff90353979d47 (diff) | |
download | chromium_src-41bd0c83bac4f0372abbc3a0628df9299f80b704.zip chromium_src-41bd0c83bac4f0372abbc3a0628df9299f80b704.tar.gz chromium_src-41bd0c83bac4f0372abbc3a0628df9299f80b704.tar.bz2 |
Fix placeholder handling for valid values captions.
The protobuf generation code didn't expand placeholders, fix that. While
at it, switch PolicyDetails.items from a dict to a proper type. This
only affects comments in generated code.
BUG=None
TEST=None
R=joaodasilva@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22224002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215709 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/tools')
-rwxr-xr-x | chrome/tools/build/generate_policy_source.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/chrome/tools/build/generate_policy_source.py b/chrome/tools/build/generate_policy_source.py index 4f5ee46..09c8791 100755 --- a/chrome/tools/build/generate_policy_source.py +++ b/chrome/tools/build/generate_policy_source.py @@ -40,6 +40,11 @@ class PolicyDetails: 'string-enum': ('TYPE_STRING', 'string', 'String'), } + class EnumItem: + def __init__(self, item): + self.caption = PolicyDetails._RemovePlaceholders(item['caption']) + self.value = item['value'] + def __init__(self, policy, os, is_chromium_os): self.id = policy['id'] self.name = policy['name'] @@ -69,14 +74,21 @@ class PolicyDetails: PolicyDetails.TYPE_MAP[policy['type']] self.desc = '\n'.join( - map(str.strip, self._RemovePlaceholders(policy['desc']).splitlines())) - self.caption = self._RemovePlaceholders(policy['caption']) - self.items = policy.get('items') + map(str.strip, + PolicyDetails._RemovePlaceholders(policy['desc']).splitlines())) + self.caption = PolicyDetails._RemovePlaceholders(policy['caption']) + + items = policy.get('items') + if items is None: + self.items = None + else: + self.items = [ PolicyDetails.EnumItem(entry) for entry in items ] PH_PATTERN = re.compile('<ph[^>]*>([^<]*|[^<]*<ex>([^<]*)</ex>[^<]*)</ph>') # Simplistic grit placeholder stripper. - def _RemovePlaceholders(self, text): + @staticmethod + def _RemovePlaceholders(text): result = '' pos = 0 for m in PolicyDetails.PH_PATTERN.finditer(text): @@ -373,7 +385,7 @@ def _WritePolicyProto(f, policy, fields): if policy.items is not None: _OutputComment(f, '\nValid values:') for item in policy.items: - _OutputComment(f, ' %s: %s' % (str(item['value']), item['caption'])) + _OutputComment(f, ' %s: %s' % (str(item.value), item.caption)) f.write('message %sProto {\n' % policy.name) f.write(' optional PolicyOptions policy_options = 1;\n') f.write(' optional %s %s = 2;\n' % (policy.protobuf_type, policy.name)) |