diff options
| -rw-r--r-- | meta/classes/buildhistory.bbclass | 13 | ||||
| -rwxr-xr-x | scripts/oe-pkgdata-util | 26 | 
2 files changed, 24 insertions, 15 deletions
| diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index 108275a460..8af36c5210 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass @@ -3,7 +3,7 @@  #  # Based in part on testlab.bbclass and packagehistory.bbclass  # -# Copyright (C) 2011-2014 Intel Corporation +# Copyright (C) 2011-2016 Intel Corporation  # Copyright (C) 2007-2011 Koen Kooi <koen@openembedded.org>  # @@ -416,15 +416,8 @@ buildhistory_get_installed() {  	rm $1/depends.tmp  	# Produce installed package sizes list -	printf "" > $1/installed-package-sizes.tmp -	cat $pkgcache | while read pkg pkgfile pkgarch -	do -		size=`oe-pkgdata-util -p ${PKGDATA_DIR} read-value "PKGSIZE" ${pkg}_${pkgarch}` -		if [ "$size" != "" ] ; then -			echo "$size $pkg" >> $1/installed-package-sizes.tmp -		fi -	done -	cat $1/installed-package-sizes.tmp | sort -n -r | awk '{print $1 "\tKiB " $2}' > $1/installed-package-sizes.txt +	oe-pkgdata-util -p ${PKGDATA_DIR} read-value "PKGSIZE" -n -f $pkgcache > $1/installed-package-sizes.tmp +	cat $1/installed-package-sizes.tmp | awk '{print $2 "\tKiB " $1}' | sort -n -r > $1/installed-package-sizes.txt  	rm $1/installed-package-sizes.tmp  	# We're now done with the cache, delete it diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util index 8e22e020e7..a04e44d35a 100755 --- a/scripts/oe-pkgdata-util +++ b/scripts/oe-pkgdata-util @@ -161,8 +161,18 @@ def glob(args):  def read_value(args):      # Handle both multiple arguments and multiple values within an arg (old syntax)      packages = [] -    for pkgitem in args.pkg: -        packages.extend(pkgitem.split()) +    if args.file: +        with open(args.file, 'r') as f: +            for line in f: +                splitline = line.split() +                if splitline: +                    packages.append(splitline[0]) +    else: +        for pkgitem in args.pkg: +            packages.extend(pkgitem.split()) +        if not packages: +            logger.error("No packages specified") +            sys.exit(1)      def readvar(pkgdata_file, valuename):          val = "" @@ -187,9 +197,13 @@ def read_value(args):                  qvar = "%s_%s" % (args.valuename, mappedpkg)                  # PKGSIZE is now in bytes, but we we want it in KB                  pkgsize = (int(readvar(revlink, qvar)) + 1024 // 2) // 1024 -                print("%d" % pkgsize) +                value = "%d" % pkgsize +            else: +                value = readvar(revlink, qvar) +            if args.prefix_name: +                print('%s %s' % (pkg_name, value))              else: -                print(readvar(revlink, qvar)) +                print(value)  def lookup_pkglist(pkgs, pkgdata_dir, reverse):      if reverse: @@ -465,7 +479,9 @@ def main():                                            help='Read any pkgdata value for one or more packages',                                            description='Reads the named value from the pkgdata files for the specified packages')      parser_read_value.add_argument('valuename', help='Name of the value to look up') -    parser_read_value.add_argument('pkg', nargs='+', help='Runtime package name to look up') +    parser_read_value.add_argument('pkg', nargs='*', help='Runtime package name to look up') +    parser_read_value.add_argument('-f', '--file', help='Read package names from the specified file (one per line, first field only)') +    parser_read_value.add_argument('-n', '--prefix-name', help='Prefix output with package name', action='store_true')      parser_read_value.set_defaults(func=read_value)      parser_glob = subparsers.add_parser('glob', | 
