Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Unified Diff: services/shell/public/tools/manifest/manifest_collator.py

Issue 2419723002: Move services/shell to services/service_manager (Closed)
Patch Set: rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/shell/public/service_manifest.gni ('k') | services/shell/runner/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/shell/public/tools/manifest/manifest_collator.py
diff --git a/services/shell/public/tools/manifest/manifest_collator.py b/services/shell/public/tools/manifest/manifest_collator.py
deleted file mode 100755
index a8d79b26b3ff20aed0f82d134296ebd4955e778c..0000000000000000000000000000000000000000
--- a/services/shell/public/tools/manifest/manifest_collator.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2016 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.
-
-""" A collator for Service Manifests """
-
-import argparse
-import json
-import os
-import shutil
-import sys
-import urlparse
-
-
-# Keys which are completely overridden by manifest overlays
-_MANIFEST_OVERLAY_OVERRIDE_KEYS = [
- "display_name",
- "process-group",
-]
-
-eater_relative = '../../../../../../tools/json_comment_eater'
-eater_relative = os.path.join(os.path.abspath(__file__), eater_relative)
-sys.path.insert(0, os.path.normpath(eater_relative))
-try:
- import json_comment_eater
-finally:
- sys.path.pop(0)
-
-
-def ParseJSONFile(filename):
- with open(filename) as json_file:
- try:
- return json.loads(json_comment_eater.Nom(json_file.read()))
- except ValueError as e:
- print "%s is not a valid JSON document" % filename
- raise e
-
-
-def MergeDicts(left, right):
- for k, v in right.iteritems():
- if k not in left:
- left[k] = v
- else:
- if isinstance(v, dict):
- assert isinstance(left[k], dict)
- MergeDicts(left[k], v)
- elif isinstance(v, list):
- assert isinstance(left[k], list)
- left[k].extend(v)
- else:
- raise "Refusing to merge conflicting non-collection values."
- return left
-
-
-def MergeManifestOverlay(manifest, overlay):
- MergeDicts(manifest["capabilities"], overlay["capabilities"])
-
- if "services" in overlay:
- if "services" not in manifest:
- manifest["services"] = []
- manifest["services"].extend(overlay["services"])
-
- for key in _MANIFEST_OVERLAY_OVERRIDE_KEYS:
- if key in overlay:
- manifest[key] = overlay[key]
-
-
-def main():
- parser = argparse.ArgumentParser(
- description="Collate Service Manifests.")
- parser.add_argument("--parent")
- parser.add_argument("--output")
- parser.add_argument("--name")
- parser.add_argument("--overlays", nargs="+", dest="overlays", default=[])
- args, children = parser.parse_known_args()
-
- parent = ParseJSONFile(args.parent)
-
- service_path = parent['name'].split(':')[1]
- if service_path.startswith('//'):
- raise ValueError("Service name path component '%s' must not start " \
- "with //" % service_path)
-
- if args.name != service_path:
- raise ValueError("Service name '%s' specified in build file does not " \
- "match name '%s' specified in manifest." %
- (args.name, service_path))
-
- services = []
- for child in children:
- services.append(ParseJSONFile(child))
-
- if len(services) > 0:
- parent['services'] = services
-
- for overlay_path in args.overlays:
- MergeManifestOverlay(parent, ParseJSONFile(overlay_path))
-
- with open(args.output, 'w') as output_file:
- json.dump(parent, output_file)
-
- return 0
-
-if __name__ == "__main__":
- sys.exit(main())
« no previous file with comments | « services/shell/public/service_manifest.gni ('k') | services/shell/runner/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698