| Index: services/catalog/public/tools/generate_manifest.py
|
| diff --git a/services/catalog/public/tools/generate_manifest.py b/services/catalog/public/tools/generate_manifest.py
|
| index 316ee687936dc6c3eb4ddaa2e3800bbaf20c8ac1..20ec8f41436cbdd1c57146ae00c61caad92dc048 100755
|
| --- a/services/catalog/public/tools/generate_manifest.py
|
| +++ b/services/catalog/public/tools/generate_manifest.py
|
| @@ -43,30 +43,11 @@
|
| services[name] = entry
|
|
|
|
|
| -def SanityCheckCatalog(catalog):
|
| - """Ensures any given service name appears only once within the catalog."""
|
| - known_services = set()
|
| -
|
| - def has_no_dupes(root):
|
| - if "name" in root:
|
| - name = root["name"]
|
| - if name in known_services:
|
| - raise ValueError("Duplicate catalog entry found for service: %s" % name)
|
| - known_services.add(name)
|
| -
|
| - if "services" not in root:
|
| - return True
|
| -
|
| - return all(has_no_dupes(service) for service in root["services"])
|
| -
|
| - return all(has_no_dupes(service["manifest"])
|
| - for service in catalog["services"].itervalues())
|
| -
|
| -
|
| def main():
|
| parser = argparse.ArgumentParser(
|
| description="Generates a Service Manager catalog manifest.")
|
| parser.add_argument("--output")
|
| + parser.add_argument("--packages-dir")
|
| parser.add_argument("--pretty", action="store_true")
|
| parser.add_argument("--embedded-services", nargs="+",
|
| dest="embedded_services", default=[])
|
| @@ -78,8 +59,8 @@
|
| dest="executable_override_specs", default=[])
|
| args, _ = parser.parse_known_args()
|
|
|
| - if args.output is None:
|
| - raise Exception("--output required")
|
| + if args.output is None or args.packages_dir is None:
|
| + raise Exception("--output and --packages-dir required")
|
|
|
| services = {}
|
| for subcatalog_path in args.included_catalogs:
|
| @@ -92,15 +73,16 @@
|
| service_name, exe_path = override_spec.split(":", 1)
|
| executable_overrides[service_name] = exe_path
|
|
|
| - for manifest_path in args.embedded_services:
|
| + for name in args.embedded_services:
|
| + manifest_path = os.path.join(args.packages_dir, name, "manifest.json")
|
| service_name, manifest = ParseManifest(manifest_path)
|
| entry = { "embedded": True, "manifest": manifest }
|
| AddServiceEntryToCatalog(services, service_name, entry)
|
|
|
| - for manifest_path in args.standalone_services:
|
| + for name in args.standalone_services:
|
| + manifest_path = os.path.join(args.packages_dir, name, "manifest.json")
|
| service_name, manifest = ParseManifest(manifest_path)
|
| - entry = { "embedded": False, "manifest": manifest }
|
| - name = manifest["name"]
|
| + entry = { "embedded": False, "manifest": ParseJSONFile(manifest_path) }
|
| if name in executable_overrides:
|
| entry["executable"] = executable_overrides[name]
|
| AddServiceEntryToCatalog(services, service_name, entry)
|
| @@ -109,10 +91,6 @@
|
| with open(args.output, 'w') as output_file:
|
| json.dump(catalog, output_file, indent=2 if args.pretty else -1)
|
|
|
| - # NOTE: We do the sanity check and possible failure *after* outputting the
|
| - # catalog manifest so it's easier to inspect erroneous output.
|
| - SanityCheckCatalog(catalog);
|
| -
|
| return 0
|
|
|
| if __name__ == "__main__":
|
|
|