From 3eeafdbb5bcff1ae30c3014844ff6ea3887837f3 Mon Sep 17 00:00:00 2001 From: Brendan Early Date: May 22 2021 19:39:49 +0000 Subject: [wip] file tree changes --- diff --git a/bin/generate-html.py b/bin/generate-html.py index 18af120..04b1d8f 100755 --- a/bin/generate-html.py +++ b/bin/generate-html.py @@ -5,6 +5,7 @@ # * release: fedora-31, epel-7, ... # * branch: base (= none), updates, updates-testing # * release_branch: fedora-31, fedora-31-updates, fedora-31-updates-testing, ... +import functools import os import re import sys @@ -15,7 +16,7 @@ import argparse import glob from datetime import date -from collections import defaultdict +from collections import OrderedDict from jinja2 import Environment, PackageLoader, select_autoescape @@ -310,7 +311,7 @@ def main(): } # Generate files page for pkg. - files = [] + files = {} for entry in filelist.execute('SELECT * FROM filelist WHERE pkgKey = ?', (pkg_key,)): filenames = entry["filenames"].split('/') filetype_index = 0 @@ -320,11 +321,17 @@ def main(): except Exception: filetype = '?' - files += [{ - "type": filetype, - "path": os.path.join(entry["dirname"], filename), - }] + current = files + for dir in entry["dirname"].split('/'): + if dir != "": + if dir not in current: + current[dir] = {} + current = current[dir] + + current['__PACKAGES_STATIC_META__'] = [] + current['__PACKAGES_STATIC_META__'].append((filetype, filename)) filetype_index += 1 + # TODO: sort # Generate changelog page for pkg. changelog = [] diff --git a/templates/package-details.html.j2 b/templates/package-details.html.j2 index 6bbbe7f..9b12fd2 100644 --- a/templates/package-details.html.j2 +++ b/templates/package-details.html.j2 @@ -13,8 +13,8 @@ -
-
+
+
@@ -58,22 +58,40 @@ + {% if files|length != 0 %} + {% macro gentree(files) -%} +
    + {% for dir in files %} + {% if dir != '__PACKAGES_STATIC_META__' %} +
  • + {% if '__PACKAGES_STATIC_META__' in files[dir] %} + {{ dir }}/ +
      + {% for file in files[dir]['__PACKAGES_STATIC_META__'] %} + {% if file[0] == 'd' %} + {% if not file[1] in files[dir] %} +
    • {{ file[1] }}/
    • + {% endif %} + {% else %} +
    • {{ file[1] }}
    • + {% endif %} + {% endfor %} +
    + {% else %} + {{ dir }}/ + {% endif %} + {{ gentree(files[dir]) }} +
  • + {% endif %} + {% endfor %} +
+ {%- endmacro %}

Files

- - - - - - - - {% for file in files %} - - - - - {% endfor %} - + {{ gentree(files) }} + {% endif %} + + diff --git a/templates/package.html.j2 b/templates/package.html.j2 index 283b3fc..dfa0acf 100644 --- a/templates/package.html.j2 +++ b/templates/package.html.j2 @@ -13,8 +13,8 @@ -
- +
+
TypePath
{{ file.type }}{{ file.path }}