blob: 31375f638b6cd9f2d54a9a751bd3fe9f8f749e81 [file] [log] [blame]
David Jamese5867812012-10-19 12:02:20 -07001# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Don Garrett25f309a2014-03-19 14:02:12 -07005"""Calculate what overlays are needed for a particular board."""
David Jamese5867812012-10-19 12:02:20 -07006
David Jamese5867812012-10-19 12:02:20 -07007import os
8
Mike Frysinger58f9eb72014-08-26 10:10:47 -04009from chromite.lib import commandline
Mike Frysinger807d8282022-04-28 22:45:17 -040010from chromite.lib import constants
Alex Deymo075c2292014-09-04 18:31:50 -070011from chromite.lib import portage_util
David Jamese5867812012-10-19 12:02:20 -070012
13
14def _ParseArguments(argv):
Mike Frysinger58f9eb72014-08-26 10:10:47 -040015 parser = commandline.ArgumentParser(description=__doc__)
David Jamese5867812012-10-19 12:02:20 -070016
Mike Frysinger58f9eb72014-08-26 10:10:47 -040017 parser.add_argument('--board', default=None, help='Board name')
Mike Frysinger320b5012014-10-31 16:46:41 -040018 parser.add_argument('-a', '--all', default=False, action='store_true',
19 help='Show all overlays (even common ones).')
David Jamese5867812012-10-19 12:02:20 -070020
Mike Frysinger58f9eb72014-08-26 10:10:47 -040021 opts = parser.parse_args(argv)
22 opts.Freeze()
David Jamese5867812012-10-19 12:02:20 -070023
Mike Frysinger58f9eb72014-08-26 10:10:47 -040024 return opts
David Jamese5867812012-10-19 12:02:20 -070025
26
27def main(argv):
Mike Frysinger58f9eb72014-08-26 10:10:47 -040028 opts = _ParseArguments(argv)
David Jamese5867812012-10-19 12:02:20 -070029
Mike Frysinger0e001852018-07-27 15:20:36 -040030 overlays = portage_util.FindOverlays(constants.BOTH_OVERLAYS, opts.board)
David Jamese5867812012-10-19 12:02:20 -070031
32 # Exclude any overlays in src/third_party, for backwards compatibility with
33 # scripts that expected these to not be listed.
Mike Frysinger320b5012014-10-31 16:46:41 -040034 if not opts.all:
35 ignore_prefix = os.path.join(constants.SOURCE_ROOT, 'src', 'third_party')
36 overlays = [o for o in overlays if not o.startswith(ignore_prefix)]
David Jamese5867812012-10-19 12:02:20 -070037
Mike Frysinger58f9eb72014-08-26 10:10:47 -040038 print('\n'.join(overlays))