lib/oe/utils: Add function format_pkg_list()

The class PkgsList returns a dictionary with all the installed
packages, because the data structure is a dictionary there is
needed to format the data in order to write to a file.

The function format_pkg_list returns a formated sting with all
packages installed. The output will depend on the requested format
when calling the function.

[YOCTO #7427]

(From OE-Core rev: 25725e6e5fff8017aaf3a6fcd9b1b893c22630b5)

Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mariano Lopez 2016-01-18 14:33:05 +00:00 committed by Richard Purdie
parent c708411f20
commit 03075f671c

View File

@ -208,6 +208,28 @@ def squashspaces(string):
import re
return re.sub("\s+", " ", string).strip()
def format_pkg_list(pkg_dict, ret_format=None):
output = []
if ret_format == "arch":
for pkg in sorted(pkg_dict):
output.append("%s %s" % (pkg, pkg_dict[pkg]["arch"]))
elif ret_format == "file":
for pkg in sorted(pkg_dict):
output.append("%s %s %s" % (pkg, pkg_dict[pkg]["filename"], pkg_dict[pkg]["arch"]))
elif ret_format == "ver":
for pkg in sorted(pkg_dict):
output.append("%s %s %s" % (pkg, pkg_dict[pkg]["arch"], pkg_dict[pkg]["ver"]))
elif ret_format == "deps":
for pkg in sorted(pkg_dict):
for dep in pkg_dict[pkg]["deps"]:
output.append("%s|%s" % (pkg, dep))
else:
for pkg in sorted(pkg_dict):
output.append(pkg)
return '\n'.join(output)
#
# Python 2.7 doesn't have threaded pools (just multiprocessing)
# so implement a version here