From ba34c74b4af705a00c07dc4af0120d776731541e Mon Sep 17 00:00:00 2001 From: Anton Medvedev Date: Sun, 16 Feb 2025 10:39:02 +0100 Subject: [PATCH] rewrite list-packages-for-ks.py script to python3 Signed-off-by: Anton Medvedev --- tools/list-packages-for-ks.py | 50 +++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/tools/list-packages-for-ks.py b/tools/list-packages-for-ks.py index 0ec0eb2..ba67056 100755 --- a/tools/list-packages-for-ks.py +++ b/tools/list-packages-for-ks.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Given as input a comps definition and a .ks file, list # the packages which would be installed. This list is # NOT depsolved, it's merely a textual list of explicitly @@ -11,38 +11,40 @@ import os import sys import getopt -import xml.etree.cElementTree as ElementTree +import xml.etree.ElementTree as ElementTree import pykickstart import pykickstart.parser import pykickstart.version + def usage(ecode): - print "Usage: %s [--version=VERSION] COMPS.xml KICKSTART.ks" % (sys.argv[0], ) - print "List packages installed by KICKSTART." + print("Usage: {} [--version=VERSION] COMPS.xml KICKSTART.ks".format(sys.argv[0])) + print("List packages installed by KICKSTART.") sys.exit(ecode) + def main(): try: - opts,args = getopt.getopt(sys.argv[1:], 'h', ['help', 'version=', 'debug']) - except getopt.GetoptError, e: + opts, args = getopt.getopt(sys.argv[1:], 'h', ['help', 'version=', 'debug']) + except getopt.GetoptError as e: usage(1) - + version = None debug = False - for o,a in opts: + for o, a in opts: if o in ('-h', '--help'): usage(0) - elif o in ('--debug', ): + elif o in ('--debug',): debug = True - elif o in ('--version', ): + elif o in ('--version',): version = a - + if len(args) != 2: usage(1) comps_filename = args[0] kickstart_filename = args[1] - + if version: version_cls = pykickstart.version.stringToVersion(version) else: @@ -55,10 +57,10 @@ def main(): working_directory = os.path.dirname(kickstart_filename) if working_directory: os.chdir(working_directory) - + parser = pykickstart.parser.KickstartParser(version_cls) parser.readKickstart(kickstart_filename) - + comps_groups = comps.findall('group') packages_for_group = {} for group in comps_groups: @@ -74,27 +76,29 @@ def main(): packages_for_group[group_id.text] = pkglist pkg_list = set() - + for group in parser.handler.packages.groupList: if debug: - print >>sys.stderr, "# Including %d packages from group %r" % (len(packages_for_group[group.name]), group.name) - for pkg in packages_for_group[group.name]: + print("# Including {} packages from group '{}'".format(len(packages_for_group.get(group.name, [])), + group.name), file=sys.stderr) + for pkg in packages_for_group.get(group.name, []): pkg_list.add(pkg) if debug: - print >>sys.stderr, "# Adding %d explicitly specified packages" % (len(parser.handler.packages.packageList), ) + print("# Adding {} explicitly specified packages".format(len(parser.handler.packages.packageList)), + file=sys.stderr) for pkg in parser.handler.packages.packageList: pkg_list.add(pkg) if debug: - print >>sys.stderr, "# Processing %d explicitly excluded packages" % (len(parser.handler.packages.excludedList), ) + print("# Processing {} explicitly excluded packages".format(len(parser.handler.packages.excludedList)), + file=sys.stderr) for pkg in parser.handler.packages.excludedList: - if pkg in pkg_list: - pkg_list.remove(pkg) + pkg_list.discard(pkg) for pkg in sorted(pkg_list): - print "%s" % (pkg, ) + print(pkg) sys.exit(0) + if __name__ == '__main__': main() -