CUSP-1345 CUSP-1343 CUSP-1344 - Add older version ability

Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
This commit is contained in:
Stephen Simpson
2025-12-04 15:49:42 -06:00
parent 890d7fc8f9
commit 68b9310862
4 changed files with 154 additions and 73 deletions

View File

@@ -2,6 +2,7 @@
import argparse
import logging
import re
import sys
from pathlib import Path
@@ -49,16 +50,13 @@ def process_version(config: Config, version: str, template_dir: Path) -> bool:
# Use first available architecture (man pages are arch-independent)
arch = config.architectures[0]
# Get repository URL
repo_url = config.get_repo_url(version, repo_type, arch)
# Create cache dir for this repo
cache_dir = config.download_dir / f".cache/{version}/{repo_type}"
try:
# Initialize repository manager
repo_manager = RepoManager(
repo_url=repo_url,
config=config,
version=version,
repo_type=repo_type,
arch=arch,
@@ -250,6 +248,12 @@ def main():
help="Rocky Linux mirror URL (default: http://dl.rockylinux.org/)",
)
parser.add_argument(
"--vault",
action="store_true",
help="Use vault directory instead of pub (vault/rocky instead of pub/rocky)",
)
parser.add_argument(
"--template-dir",
type=Path,
@@ -307,9 +311,13 @@ def main():
elif args.skip_languages is not None:
skip_languages = args.skip_languages
# Determine content directory
content_dir = "vault/rocky" if args.vault else "pub/rocky"
# Create configuration
config = Config(
base_url=args.mirror,
content_dir=content_dir,
versions=args.versions,
repo_types=args.repo_types,
download_dir=args.download_dir,
@@ -325,8 +333,17 @@ def main():
allow_all_sections=args.allow_all_sections,
)
# Scan for existing versions in output directory
existing_versions = [
d.name
for d in config.output_dir.iterdir()
if d.is_dir() and re.match(r"\d+\.\d+", d.name)
]
all_versions = sorted(set(existing_versions + config.versions))
logger.info("Rocky Man - Rocky Linux Man Page Generator")
logger.info(f"Versions: {', '.join(config.versions)}")
logger.info(f"Versions to process: {', '.join(config.versions)}")
logger.info(f"All known versions: {', '.join(all_versions)}")
logger.info(f"Repositories: {', '.join(config.repo_types)}")
logger.info(f"Output directory: {config.output_dir}")
@@ -360,7 +377,7 @@ def main():
# Generate root index
logger.info("Generating root index page...")
web_gen = WebGenerator(args.template_dir, config.output_dir)
web_gen.generate_root_index(processed_versions)
web_gen.generate_root_index(all_versions)
logger.info("=" * 60)
logger.info("Processing complete!")