From 767b265ded753251e45217702098a235b7ea4b6f Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Sun, 11 Jun 2023 11:20:15 +0100 Subject: Generate an includeable HTML fragment with the list of reports --- calm/reports.py | 48 +++++++++++++++++++----------- test/testdata/process_arch/htdocs.expected | 2 +- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/calm/reports.py b/calm/reports.py index a9a3f4b..b101ef4 100644 --- a/calm/reports.py +++ b/calm/reports.py @@ -57,6 +57,15 @@ def template(title, body, f): '''), file=f) +def write_report(args, title, body, fn, reportlist): + reportlist[title] = os.path.join('reports', fn) + + fn = os.path.join(args.htdocs, 'reports', fn) + + with utils.open_amifc(fn) as f: + template(title, body.getvalue(), f) + + def linkify(pn, po): return '{1}'.format(pn, po.orig_name) @@ -64,7 +73,7 @@ def linkify(pn, po): # # produce a report of unmaintained packages # -def unmaintained(args, packages, reportsdir): +def unmaintained(args, packages, reportlist): pkg_maintainers = maintainers.pkg_list(args.pkglist) um_list = [] @@ -123,14 +132,12 @@ def unmaintained(args, packages, reportsdir): print('', file=body) - unmaintained = os.path.join(reportsdir, 'unmaintained.html') - with utils.open_amifc(unmaintained) as f: - template('Unmaintained packages', body.getvalue(), f) + write_report(args, 'Unmaintained packages', body, 'unmaintained.html', reportlist) # produce a report of deprecated packages # -def deprecated(args, packages, reportsdir): +def deprecated(args, packages, reportlist): dep_list = [] arch = 'x86_64' @@ -183,15 +190,13 @@ def deprecated(args, packages, reportsdir): print('', file=body) - deprecated = os.path.join(reportsdir, 'deprecated_so.html') - with utils.open_amifc(deprecated) as f: - template('Deprecated shared library packages', body.getvalue(), f) + write_report(args, 'Deprecated shared library packages', body, 'deprecated_so.html', reportlist) # produce a report of packages which need rebuilding for the latest major # version version provides # -def provides_rebuild(args, packages, reportfile, provide_package): +def provides_rebuild(args, packages, fn, provide_package, reportlist): pr_list = [] arch = 'x86_64' @@ -246,8 +251,7 @@ def provides_rebuild(args, packages, reportfile, provide_package): print('', file=body) - with utils.open_amifc(reportfile) as f: - template('Packages needing rebuilds for latest %s' % provide_package, body.getvalue(), f) + write_report(args, 'Packages needing rebuilds for latest %s' % provide_package, body, fn, reportlist) # @@ -255,11 +259,21 @@ def do_reports(args, packages): if args.dryrun: return - reportsdir = os.path.join(args.htdocs, 'reports') - pkg2html.ensure_dir_exists(args, reportsdir) + reportlist = {} + + pkg2html.ensure_dir_exists(args, os.path.join(args.htdocs, 'reports')) + + unmaintained(args, packages, reportlist) + deprecated(args, packages, reportlist) - unmaintained(args, packages, reportsdir) - deprecated(args, packages, reportsdir) + provides_rebuild(args, packages, 'perl_rebuilds.html', 'perl_base', reportlist) + provides_rebuild(args, packages, 'ruby_rebuilds.html', 'ruby', reportlist) - provides_rebuild(args, packages, os.path.join(reportsdir, 'perl_rebuilds.html'), 'perl_base') - provides_rebuild(args, packages, os.path.join(reportsdir, 'ruby_rebuilds.html'), 'ruby') + fn = os.path.join(args.htdocs, 'reports_list.inc') + with utils.open_amifc(fn) as f: + print('', file=f) diff --git a/test/testdata/process_arch/htdocs.expected b/test/testdata/process_arch/htdocs.expected index 55585d6..d9afd07 100644 --- a/test/testdata/process_arch/htdocs.expected +++ b/test/testdata/process_arch/htdocs.expected @@ -1,4 +1,4 @@ -{'.': ['calm.db', 'packages.inc', 'src_packages.inc'], +{'.': ['calm.db', 'packages.inc', 'reports_list.inc', 'src_packages.inc'], 'reports': ['deprecated_so.html', 'perl_rebuilds.html', 'ruby_rebuilds.html', 'unmaintained.html'], 'summary': ['arc-src.html', 'arc.html', -- cgit v1.2.3