blob: 7c9925c32261c5844ef02db837945952f15095a1 [file] [log] [blame]
Mike Frysingere58c0e22017-10-04 15:43:30 -04001# -*- coding: utf-8 -*-
David Jamese5867812012-10-19 12:02:20 -07002# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
Don Garrett25f309a2014-03-19 14:02:12 -07006"""Calculate what overlays are needed for a particular board."""
David Jamese5867812012-10-19 12:02:20 -07007
Mike Frysinger58f9eb72014-08-26 10:10:47 -04008from __future__ import print_function
9
David Jamese5867812012-10-19 12:02:20 -070010import os
11
Aviv Keshetb7519e12016-10-04 00:50:00 -070012from chromite.lib import constants
Mike Frysinger58f9eb72014-08-26 10:10:47 -040013from chromite.lib import commandline
Alex Deymo075c2292014-09-04 18:31:50 -070014from chromite.lib import portage_util
David Jamese5867812012-10-19 12:02:20 -070015
16
17def _ParseArguments(argv):
Mike Frysinger58f9eb72014-08-26 10:10:47 -040018 parser = commandline.ArgumentParser(description=__doc__)
David Jamese5867812012-10-19 12:02:20 -070019
Mike Frysinger58f9eb72014-08-26 10:10:47 -040020 parser.add_argument('--board', default=None, help='Board name')
Mike Frysinger320b5012014-10-31 16:46:41 -040021 parser.add_argument('-a', '--all', default=False, action='store_true',
22 help='Show all overlays (even common ones).')
David Jamese5867812012-10-19 12:02:20 -070023
Mike Frysinger58f9eb72014-08-26 10:10:47 -040024 opts = parser.parse_args(argv)
25 opts.Freeze()
David Jamese5867812012-10-19 12:02:20 -070026
Mike Frysinger58f9eb72014-08-26 10:10:47 -040027 return opts
David Jamese5867812012-10-19 12:02:20 -070028
29
30def main(argv):
Mike Frysinger58f9eb72014-08-26 10:10:47 -040031 opts = _ParseArguments(argv)
David Jamese5867812012-10-19 12:02:20 -070032
Mike Frysinger0e001852018-07-27 15:20:36 -040033 overlays = portage_util.FindOverlays(constants.BOTH_OVERLAYS, opts.board)
David Jamese5867812012-10-19 12:02:20 -070034
35 # Exclude any overlays in src/third_party, for backwards compatibility with
36 # scripts that expected these to not be listed.
Mike Frysinger320b5012014-10-31 16:46:41 -040037 if not opts.all:
38 ignore_prefix = os.path.join(constants.SOURCE_ROOT, 'src', 'third_party')
39 overlays = [o for o in overlays if not o.startswith(ignore_prefix)]
David Jamese5867812012-10-19 12:02:20 -070040
Mike Frysinger58f9eb72014-08-26 10:10:47 -040041 print('\n'.join(overlays))