blob: 76faf52a868985cc3b367f3634922ba4bfa0b9bf [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Generate a Fuchsia component manifest for isolated devmgr."""
from __future__ import print_function
import os
import argparse
import json
import sys
def main(argv):
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
'--executable-path', required=True, help="Executable path")
parser.add_argument(
'--additional-services',
action='append',
default=[],
help='Additional system servies.')
parser.add_argument(
'--output', required=True, help='Optional output file path.')
parser.add_argument(
'--additional-features',
action='append',
default=[],
help='Additional features.')
args = parser.parse_args(argv)
output = open(args.output, 'w')
content = {
'include': ['sdk/lib/diagnostics/syslog/client.shard.cmx'],
'facets':
{
'fuchsia.test': {
'system-services': args.additional_services,
},
},
'program': {
'binary': args.executable_path
},
'sandbox':
{
'features':
args.additional_features,
'services':
[
"fuchsia.exception.Handler",
"fuchsia.process.Launcher",
] + args.additional_services,
},
}
json.dump(content, output, indent=4, separators=(',', ': '), sort_keys=True)
output.close()
if __name__ == "__main__":
main(sys.argv[1:])