blob: e4968383cf0de65cae2beb36291f7ba80c4a74c6 [file] [log] [blame]
# Copyright 2012 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Calculate what overlays are needed for a particular board."""
import os
from chromite.lib import commandline
from chromite.lib import constants
from chromite.lib import portage_util
def _ParseArguments(argv):
parser = commandline.ArgumentParser(description=__doc__)
parser.add_argument("--board", default=None, help="Board name")
parser.add_argument(
"-a",
"--all",
default=False,
action="store_true",
help="Show all overlays (even common ones).",
)
opts = parser.parse_args(argv)
opts.Freeze()
return opts
def main(argv) -> None:
opts = _ParseArguments(argv)
overlays = portage_util.FindOverlays(constants.BOTH_OVERLAYS, opts.board)
# Exclude any overlays in src/third_party, for backwards compatibility with
# scripts that expected these to not be listed.
if not opts.all:
ignore_prefix = os.path.join(
constants.SOURCE_ROOT, "src", "third_party"
)
overlays = [o for o in overlays if not o.startswith(ignore_prefix)]
print("\n".join(overlays))