CUSP-1346 - Add support for existing-folders

Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
This commit is contained in:
Stephen Simpson
2025-12-05 09:19:52 -06:00
parent 1c6fa0e98c
commit 70414a552d
3 changed files with 29 additions and 4 deletions

View File

@@ -254,6 +254,13 @@ def main():
help="Use vault directory instead of pub (vault/rocky instead of pub/rocky)", help="Use vault directory instead of pub (vault/rocky instead of pub/rocky)",
) )
parser.add_argument(
"--existing-versions",
nargs="*",
metavar="VERSION",
help="List of existing versions to include in root index (e.g., 8.10 9.7)",
)
parser.add_argument( parser.add_argument(
"--template-dir", "--template-dir",
type=Path, type=Path,
@@ -333,13 +340,24 @@ def main():
allow_all_sections=args.allow_all_sections, allow_all_sections=args.allow_all_sections,
) )
# Scan for existing versions in output directory # Get existing versions from scan and argument
existing_versions = [ scanned_versions = [
d.name d.name
for d in config.output_dir.iterdir() for d in config.output_dir.iterdir()
if d.is_dir() and re.match(r"\d+\.\d+", d.name) if d.is_dir() and re.match(r"\d+\.\d+", d.name)
] ]
all_versions = sorted(set(existing_versions + config.versions)) arg_versions = args.existing_versions or []
# Sort versions numerically by (major, minor)
def version_key(v):
try:
major, minor = v.split(".")
return (int(major), int(minor))
except (ValueError, AttributeError):
return (0, 0)
existing_versions = sorted(set(scanned_versions + arg_versions), key=version_key)
all_versions = sorted(set(existing_versions + config.versions), key=version_key)
logger.info("Rocky Man - Rocky Linux Man Page Generator") logger.info("Rocky Man - Rocky Linux Man Page Generator")
logger.info(f"Versions to process: {', '.join(config.versions)}") logger.info(f"Versions to process: {', '.join(config.versions)}")

View File

@@ -292,6 +292,8 @@ class WebGenerator:
minors_list = sorted(major_to_minors[major], key=int, reverse=True) minors_list = sorted(major_to_minors[major], key=int, reverse=True)
if minor_idx < len(minors_list): if minor_idx < len(minors_list):
row.append((major, minors_list[minor_idx])) row.append((major, minors_list[minor_idx]))
else:
row.append(None) # Empty cell placeholder
version_rows.append(row) version_rows.append(row)
html = template.render( html = template.render(

View File

@@ -164,7 +164,9 @@
<div class="version-grid"> <div class="version-grid">
{% for row in version_rows %} {% for row in version_rows %}
{% set outer_loop = loop %} {% set outer_loop = loop %}
{% for major, minor in row %} {% for item in row %}
{% if item %}
{% set major, minor = item %}
<a href="{{ major }}.{{ minor }}/index.html" class="version-card{% if not outer_loop.first %} small{% endif %}"> <a href="{{ major }}.{{ minor }}/index.html" class="version-card{% if not outer_loop.first %} small{% endif %}">
<div class="version-number">{{ major }}.{{ minor }}</div> <div class="version-number">{{ major }}.{{ minor }}</div>
{% if outer_loop.first %} {% if outer_loop.first %}
@@ -172,6 +174,9 @@
<div class="version-browse">Browse man pages →</div> <div class="version-browse">Browse man pages →</div>
{% endif %} {% endif %}
</a> </a>
{% else %}
<div></div>
{% endif %}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
</div> </div>