| Index: services/service_manager/public/tools/manifest/manifest_collator.py
|
| diff --git a/services/service_manager/public/tools/manifest/manifest_collator.py b/services/service_manager/public/tools/manifest/manifest_collator.py
|
| index 1d2d76e7a8abab0fa0c20e54558fe52bf519c63d..3944d2f4b0fb664b1a158cd9720e97b7f5d58d98 100755
|
| --- a/services/service_manager/public/tools/manifest/manifest_collator.py
|
| +++ b/services/service_manager/public/tools/manifest/manifest_collator.py
|
| @@ -72,8 +72,11 @@ def main():
|
| parser.add_argument("--parent")
|
| parser.add_argument("--output")
|
| parser.add_argument("--name")
|
| + parser.add_argument("--pretty", action="store_true")
|
| parser.add_argument("--overlays", nargs="+", dest="overlays", default=[])
|
| - args, children = parser.parse_known_args()
|
| + parser.add_argument("--packaged-services", nargs="+",
|
| + dest="packaged_services", default=[])
|
| + args, _ = parser.parse_known_args()
|
|
|
| parent = ParseJSONFile(args.parent)
|
|
|
| @@ -82,23 +85,26 @@ def main():
|
| raise ValueError("Service name path component '%s' must not start " \
|
| "with //" % service_path)
|
|
|
| - if args.name != service_path:
|
| + if args.name and 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))
|
| + packaged_services = []
|
| + for child_manifest in args.packaged_services:
|
| + packaged_services.append(ParseJSONFile(child_manifest))
|
|
|
| - if len(services) > 0:
|
| - parent['services'] = services
|
| + if len(packaged_services) > 0:
|
| + if 'services' not in parent:
|
| + parent['services'] = packaged_services
|
| + else:
|
| + parent['services'].extend(packaged_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)
|
| + json.dump(parent, output_file, indent=2 if args.pretty else -1)
|
|
|
| return 0
|
|
|
|
|