| Index: grit/format/policy_templates/writers/json_writer.py
|
| ===================================================================
|
| --- grit/format/policy_templates/writers/json_writer.py (revision 0)
|
| +++ grit/format/policy_templates/writers/json_writer.py (revision 0)
|
| @@ -0,0 +1,72 @@
|
| +# Copyright (c) 2011 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.
|
| +
|
| +
|
| +from xml.dom import minidom
|
| +from grit.format.policy_templates.writers import template_writer
|
| +
|
| +
|
| +def GetWriter(config):
|
| + '''Factory method for creating JsonWriter objects.
|
| + See the constructor of TemplateWriter for description of
|
| + arguments.
|
| + '''
|
| + return JsonWriter(['linux'], config)
|
| +
|
| +
|
| +class JsonWriter(template_writer.TemplateWriter):
|
| + '''Class for generating policy files in JSON format (for Linux). The
|
| + generated files will define all the supported policies with example values
|
| + set for them. This class is used by PolicyTemplateGenerator to write .json
|
| + files.
|
| + '''
|
| +
|
| + def PreprocessPolicies(self, policy_list):
|
| + return self.FlattenGroupsAndSortPolicies(policy_list)
|
| +
|
| + def WritePolicy(self, policy):
|
| + example_value = policy['example_value']
|
| + if policy['type'] == 'string':
|
| + example_value_str = '"' + example_value + '"'
|
| + elif policy['type'] == 'int':
|
| + example_value_str = str(example_value)
|
| + elif policy['type'] == 'list':
|
| + if example_value == []:
|
| + example_value_str = '[]'
|
| + else:
|
| + example_value_str = '["%s"]' % '", "'.join(example_value)
|
| + elif policy['type'] == 'main':
|
| + if example_value == True:
|
| + example_value_str = 'true'
|
| + else:
|
| + example_value_str = 'false'
|
| + elif policy['type'] == 'string-enum':
|
| + example_value_str = '"%s"' % example_value;
|
| + elif policy['type'] == 'int-enum':
|
| + example_value_str = str(example_value)
|
| + else:
|
| + raise Exception('unknown policy type %s:' % policy['type'])
|
| +
|
| + # Add comme to the end of the previous line.
|
| + if not self._first_written:
|
| + self._out[-1] += ','
|
| +
|
| + line = ' "%s": %s' % (policy['name'], example_value_str)
|
| + self._out.append(line)
|
| +
|
| + self._first_written = False
|
| +
|
| + def BeginTemplate(self):
|
| + self._out.append('{')
|
| +
|
| + def EndTemplate(self):
|
| + self._out.append('}')
|
| +
|
| + def Init(self):
|
| + self._out = []
|
| + # The following boolean member is true until the first policy is written.
|
| + self._first_written = True
|
| +
|
| + def GetTemplateText(self):
|
| + return '\n'.join(self._out)
|
|
|
| Property changes on: grit/format/policy_templates/writers/json_writer.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|