summaryrefslogtreecommitdiffstats
path: root/chrome/tools
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-05 22:25:16 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-05 22:25:16 +0000
commit41bd0c83bac4f0372abbc3a0628df9299f80b704 (patch)
tree606f8b311c7071393d84618833fed354aaddeb38 /chrome/tools
parentcbf731104dec6dbb5de44d6edefff90353979d47 (diff)
downloadchromium_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-xchrome/tools/build/generate_policy_source.py22
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))