summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-10-11 19:27:44 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-12-01 21:30:54 +0000
commit596dee8882ebddb45a6cce9f12aa919107106156 (patch)
tree0aba8fdd19fe62a062ace863b181bb241f2a226b
parent49716a5e27e704598321bd6c82275b16afc444aa (diff)
downloadopenembedded-core-596dee8882ebddb45a6cce9f12aa919107106156.tar.gz
openembedded-core-596dee8882ebddb45a6cce9f12aa919107106156.tar.bz2
openembedded-core-596dee8882ebddb45a6cce9f12aa919107106156.zip
devtool: search: print SUMMARY value
Print the SUMMARY value for each matched item assuming it's not the default. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--scripts/lib/devtool/search.py77
1 files changed, 42 insertions, 35 deletions
diff --git a/scripts/lib/devtool/search.py b/scripts/lib/devtool/search.py
index 1c8eaff49b..2ea446237e 100644
--- a/scripts/lib/devtool/search.py
+++ b/scripts/lib/devtool/search.py
@@ -22,53 +22,60 @@ import bb
import logging
import argparse
import re
-from devtool import setup_tinfoil, DevtoolError
+from devtool import setup_tinfoil, parse_recipe, DevtoolError
logger = logging.getLogger('devtool')
def search(args, config, basepath, workspace):
"""Entry point for the devtool 'search' subcommand"""
- tinfoil = setup_tinfoil(config_only=True, basepath=basepath)
- pkgdata_dir = tinfoil.config_data.getVar('PKGDATA_DIR', True)
- tinfoil.shutdown()
+ tinfoil = setup_tinfoil(config_only=False, basepath=basepath)
+ try:
+ pkgdata_dir = tinfoil.config_data.getVar('PKGDATA_DIR', True)
+ defsummary = tinfoil.config_data.getVar('SUMMARY', False) or ''
- keyword_rc = re.compile(args.keyword)
+ keyword_rc = re.compile(args.keyword)
- for fn in os.listdir(pkgdata_dir):
- pfn = os.path.join(pkgdata_dir, fn)
- if not os.path.isfile(pfn):
- continue
+ for fn in os.listdir(pkgdata_dir):
+ pfn = os.path.join(pkgdata_dir, fn)
+ if not os.path.isfile(pfn):
+ continue
- packages = []
- match = False
- if keyword_rc.search(fn):
- match = True
+ packages = []
+ match = False
+ if keyword_rc.search(fn):
+ match = True
- if not match:
- with open(pfn, 'r') as f:
- for line in f:
- if line.startswith('PACKAGES:'):
- packages = line.split(':', 1)[1].strip().split()
+ if not match:
+ with open(pfn, 'r') as f:
+ for line in f:
+ if line.startswith('PACKAGES:'):
+ packages = line.split(':', 1)[1].strip().split()
- for pkg in packages:
- if keyword_rc.search(pkg):
- match = True
- break
- if os.path.exists(os.path.join(pkgdata_dir, 'runtime', pkg + '.packaged')):
- with open(os.path.join(pkgdata_dir, 'runtime', pkg), 'r') as f:
- for line in f:
- if ': ' in line:
- splitline = line.split(':', 1)
- key = splitline[0]
- value = splitline[1].strip()
- if key in ['PKG_%s' % pkg, 'DESCRIPTION', 'FILES_INFO'] or key.startswith('FILERPROVIDES_'):
- if keyword_rc.search(value):
- match = True
- break
+ for pkg in packages:
+ if keyword_rc.search(pkg):
+ match = True
+ break
+ if os.path.exists(os.path.join(pkgdata_dir, 'runtime', pkg + '.packaged')):
+ with open(os.path.join(pkgdata_dir, 'runtime', pkg), 'r') as f:
+ for line in f:
+ if ': ' in line:
+ splitline = line.split(':', 1)
+ key = splitline[0]
+ value = splitline[1].strip()
+ if key in ['PKG_%s' % pkg, 'DESCRIPTION', 'FILES_INFO'] or key.startswith('FILERPROVIDES_'):
+ if keyword_rc.search(value):
+ match = True
+ break
- if match:
- print(fn)
+ if match:
+ rd = parse_recipe(config, tinfoil, fn, True)
+ summary = rd.getVar('SUMMARY', True)
+ if summary == rd.expand(defsummary):
+ summary = ''
+ print("%s %s" % (fn.ljust(20), summary))
+ finally:
+ tinfoil.shutdown()
return 0