summaryrefslogtreecommitdiffstats
path: root/import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py
diff options
context:
space:
mode:
authorDave Cobbley <david.j.cobbley@linux.intel.com>2018-08-14 10:05:37 -0700
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-08-22 21:26:31 -0400
commiteb8dc40360f0cfef56fb6947cc817a547d6d9bc6 (patch)
treede291a73dc37168da6370e2cf16c347d1eba9df8 /import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py
parent9c3cf826d853102535ead04cebc2d6023eff3032 (diff)
downloadblackbird-openbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.tar.gz
blackbird-openbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.zip
[Subtree] Removing import-layers directory
As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com> Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py')
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py178
1 files changed, 0 insertions, 178 deletions
diff --git a/import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py b/import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py
deleted file mode 100755
index 7ce718624..000000000
--- a/import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/usr/bin/env python3
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation.
-#
-# Copyright (C) 2013 Wind River Systems, Inc.
-# Copyright (C) 2014 Intel Corporation
-#
-# - list available recipes which have PACKAGECONFIG flags
-# - list available PACKAGECONFIG flags and all affected recipes
-# - list all recipes and PACKAGECONFIG information
-
-import sys
-import optparse
-import os
-
-
-scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0])))
-lib_path = os.path.abspath(scripts_path + '/../lib')
-sys.path = sys.path + [lib_path]
-
-import scriptpath
-
-# For importing the following modules
-bitbakepath = scriptpath.add_bitbake_lib_path()
-if not bitbakepath:
- sys.stderr.write("Unable to find bitbake by searching parent directory of this script or PATH\n")
- sys.exit(1)
-
-import bb.cooker
-import bb.providers
-import bb.tinfoil
-
-def get_fnlist(bbhandler, pkg_pn, preferred):
- ''' Get all recipe file names '''
- if preferred:
- (latest_versions, preferred_versions) = bb.providers.findProviders(bbhandler.config_data, bbhandler.cooker.recipecaches[''], pkg_pn)
-
- fn_list = []
- for pn in sorted(pkg_pn):
- if preferred:
- fn_list.append(preferred_versions[pn][1])
- else:
- fn_list.extend(pkg_pn[pn])
-
- return fn_list
-
-def get_recipesdata(bbhandler, preferred):
- ''' Get data of all available recipes which have PACKAGECONFIG flags '''
- pkg_pn = bbhandler.cooker.recipecaches[''].pkg_pn
-
- data_dict = {}
- for fn in get_fnlist(bbhandler, pkg_pn, preferred):
- data = bbhandler.parse_recipe_file(fn)
- flags = data.getVarFlags("PACKAGECONFIG")
- flags.pop('doc', None)
- if flags:
- data_dict[fn] = data
-
- return data_dict
-
-def collect_pkgs(data_dict):
- ''' Collect available pkgs in which have PACKAGECONFIG flags '''
- # pkg_dict = {'pkg1': ['flag1', 'flag2',...]}
- pkg_dict = {}
- for fn in data_dict:
- pkgconfigflags = data_dict[fn].getVarFlags("PACKAGECONFIG")
- pkgconfigflags.pop('doc', None)
- pkgname = data_dict[fn].getVar("P")
- pkg_dict[pkgname] = sorted(pkgconfigflags.keys())
-
- return pkg_dict
-
-def collect_flags(pkg_dict):
- ''' Collect available PACKAGECONFIG flags and all affected pkgs '''
- # flag_dict = {'flag': ['pkg1', 'pkg2',...]}
- flag_dict = {}
- for pkgname, flaglist in pkg_dict.items():
- for flag in flaglist:
- if flag in flag_dict:
- flag_dict[flag].append(pkgname)
- else:
- flag_dict[flag] = [pkgname]
-
- return flag_dict
-
-def display_pkgs(pkg_dict):
- ''' Display available pkgs which have PACKAGECONFIG flags '''
- pkgname_len = len("RECIPE NAME") + 1
- for pkgname in pkg_dict:
- if pkgname_len < len(pkgname):
- pkgname_len = len(pkgname)
- pkgname_len += 1
-
- header = '%-*s%s' % (pkgname_len, str("RECIPE NAME"), str("PACKAGECONFIG FLAGS"))
- print(header)
- print(str("").ljust(len(header), '='))
- for pkgname in sorted(pkg_dict):
- print('%-*s%s' % (pkgname_len, pkgname, ' '.join(pkg_dict[pkgname])))
-
-
-def display_flags(flag_dict):
- ''' Display available PACKAGECONFIG flags and all affected pkgs '''
- flag_len = len("PACKAGECONFIG FLAG") + 5
-
- header = '%-*s%s' % (flag_len, str("PACKAGECONFIG FLAG"), str("RECIPE NAMES"))
- print(header)
- print(str("").ljust(len(header), '='))
-
- for flag in sorted(flag_dict):
- print('%-*s%s' % (flag_len, flag, ' '.join(sorted(flag_dict[flag]))))
-
-def display_all(data_dict):
- ''' Display all pkgs and PACKAGECONFIG information '''
- print(str("").ljust(50, '='))
- for fn in data_dict:
- print('%s' % data_dict[fn].getVar("P"))
- print(fn)
- packageconfig = data_dict[fn].getVar("PACKAGECONFIG") or ''
- if packageconfig.strip() == '':
- packageconfig = 'None'
- print('PACKAGECONFIG %s' % packageconfig)
-
- for flag,flag_val in data_dict[fn].getVarFlags("PACKAGECONFIG").items():
- if flag == "doc":
- continue
- print('PACKAGECONFIG[%s] %s' % (flag, flag_val))
- print('')
-
-def main():
- pkg_dict = {}
- flag_dict = {}
-
- # Collect and validate input
- parser = optparse.OptionParser(
- description = "Lists recipes and PACKAGECONFIG flags. Without -a or -f, recipes and their available PACKAGECONFIG flags are listed.",
- usage = """
- %prog [options]""")
-
- parser.add_option("-f", "--flags",
- help = "list available PACKAGECONFIG flags and affected recipes",
- action="store_const", dest="listtype", const="flags", default="recipes")
- parser.add_option("-a", "--all",
- help = "list all recipes and PACKAGECONFIG information",
- action="store_const", dest="listtype", const="all")
- parser.add_option("-p", "--preferred-only",
- help = "where multiple recipe versions are available, list only the preferred version",
- action="store_true", dest="preferred", default=False)
-
- options, args = parser.parse_args(sys.argv)
-
- with bb.tinfoil.Tinfoil() as bbhandler:
- bbhandler.prepare()
- print("Gathering recipe data...")
- data_dict = get_recipesdata(bbhandler, options.preferred)
-
- if options.listtype == 'flags':
- pkg_dict = collect_pkgs(data_dict)
- flag_dict = collect_flags(pkg_dict)
- display_flags(flag_dict)
- elif options.listtype == 'recipes':
- pkg_dict = collect_pkgs(data_dict)
- display_pkgs(pkg_dict)
- elif options.listtype == 'all':
- display_all(data_dict)
-
-if __name__ == "__main__":
- main()
OpenPOWER on IntegriCloud