blob: 335c61e555e460df65c1b882c5894baeaea1f81b [file] [log] [blame]
# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""This script generates brick runtime environment metadata from appc manifests.
On the device image we encode the outlines of the brick runtime environment in
SandboxSpecs, a protocol buffer understood by somad. Brick developers specify
the information that goes into a SandboxSpec in the form of an appc pod
manifest, which a JSON blob adhering to an open standard. This scripts maps
from pod manifests to SandboxSpecs.
"""
from __future__ import print_function
from chromite.lib import commandline
from chromite.lib import cros_build_lib
from chromite.lib import sandbox_spec_generator
def main(argv):
parser = commandline.ArgumentParser(description=__doc__)
parser.add_argument('--sysroot', type='path',
help='The sysroot to use for brick metadata validation.')
parser.add_argument('appc_pod_manifest_path', type='path',
help='path to appc pod manifest')
parser.add_argument('sandbox_spec_path', type='path',
help='path to file to write resulting SandboxSpec to. '
'Must not exist.')
options = parser.parse_args(argv)
options.Freeze()
cros_build_lib.AssertInsideChroot()
generator = sandbox_spec_generator.SandboxSpecGenerator(options.sysroot)
generator.WriteSandboxSpec(options.appc_pod_manifest_path,
options.sandbox_spec_path)
return 0