CUSP-1342 - Fix See Also
Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
This commit is contained in:
@@ -16,16 +16,12 @@ def setup_logging(verbose: bool = False):
|
||||
level = logging.DEBUG if verbose else logging.INFO
|
||||
logging.basicConfig(
|
||||
level=level,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
datefmt='%Y-%m-%d %H:%M:%S'
|
||||
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
||||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
|
||||
|
||||
def process_version(
|
||||
config: Config,
|
||||
version: str,
|
||||
template_dir: Path
|
||||
) -> bool:
|
||||
def process_version(config: Config, version: str, template_dir: Path) -> bool:
|
||||
"""Process a single Rocky Linux version.
|
||||
|
||||
Args:
|
||||
@@ -67,7 +63,7 @@ def process_version(
|
||||
repo_type=repo_type,
|
||||
arch=arch,
|
||||
cache_dir=cache_dir,
|
||||
download_dir=version_download_dir
|
||||
download_dir=version_download_dir,
|
||||
)
|
||||
|
||||
# List packages (with man pages only)
|
||||
@@ -83,19 +79,19 @@ def process_version(
|
||||
if config.skip_packages:
|
||||
original_count = len(packages)
|
||||
packages = [
|
||||
pkg for pkg in packages
|
||||
if pkg.name not in config.skip_packages
|
||||
pkg for pkg in packages if pkg.name not in config.skip_packages
|
||||
]
|
||||
filtered_count = original_count - len(packages)
|
||||
if filtered_count > 0:
|
||||
logger.info(f"Filtered out {filtered_count} packages based on skip list")
|
||||
logger.info(
|
||||
f"Filtered out {filtered_count} packages based on skip list"
|
||||
)
|
||||
logger.info(f"Processing {len(packages)} packages")
|
||||
|
||||
# Download packages
|
||||
logger.info("Downloading packages...")
|
||||
downloaded = repo_manager.download_packages(
|
||||
packages,
|
||||
max_workers=config.parallel_downloads
|
||||
packages, max_workers=config.parallel_downloads
|
||||
)
|
||||
|
||||
# Extract man pages
|
||||
@@ -103,11 +99,10 @@ def process_version(
|
||||
extractor = ManPageExtractor(
|
||||
version_extract_dir,
|
||||
skip_sections=config.skip_sections,
|
||||
skip_languages=config.skip_languages
|
||||
skip_languages=config.skip_languages,
|
||||
)
|
||||
man_files = extractor.extract_from_packages(
|
||||
downloaded,
|
||||
max_workers=config.parallel_downloads
|
||||
downloaded, max_workers=config.parallel_downloads
|
||||
)
|
||||
|
||||
logger.info(f"Extracted {len(man_files)} man pages")
|
||||
@@ -124,8 +119,7 @@ def process_version(
|
||||
logger.info("Converting man pages to HTML...")
|
||||
converter = ManPageConverter(version_output_dir)
|
||||
converted = converter.convert_many(
|
||||
man_files_with_content,
|
||||
max_workers=config.parallel_conversions
|
||||
man_files_with_content, max_workers=config.parallel_conversions
|
||||
)
|
||||
|
||||
all_man_files.extend(converted)
|
||||
@@ -163,132 +157,141 @@ def process_version(
|
||||
# Generate packages index page
|
||||
web_gen.generate_packages_index(version, search_index)
|
||||
|
||||
# Set HTML paths for all man files
|
||||
for man_file in all_man_files:
|
||||
if not man_file.html_path:
|
||||
man_file.html_path = web_gen._get_manpage_path(man_file, version)
|
||||
|
||||
# Link cross-references between man pages
|
||||
logger.info("Linking cross-references...")
|
||||
converter.link_cross_references(all_man_files, version)
|
||||
|
||||
# Wrap man pages in templates
|
||||
logger.info("Generating man page HTML...")
|
||||
for man_file in all_man_files:
|
||||
web_gen.generate_manpage_html(man_file, version)
|
||||
|
||||
logger.info(f"Successfully processed {len(all_man_files)} man pages for Rocky Linux {version}")
|
||||
logger.info(
|
||||
f"Successfully processed {len(all_man_files)} man pages for Rocky Linux {version}"
|
||||
)
|
||||
return True
|
||||
|
||||
|
||||
def main():
|
||||
"""Main entry point."""
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Generate HTML documentation for Rocky Linux man pages'
|
||||
description="Generate HTML documentation for Rocky Linux man pages"
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--versions',
|
||||
nargs='+',
|
||||
default=['8.10', '9.6', '10.0'],
|
||||
help='Rocky Linux versions to process (default: 8.10 9.6 10.0)'
|
||||
"--versions",
|
||||
nargs="+",
|
||||
default=["8.10", "9.6", "10.0"],
|
||||
help="Rocky Linux versions to process (default: 8.10 9.6 10.0)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--repo-types',
|
||||
nargs='+',
|
||||
default=['BaseOS', 'AppStream'],
|
||||
help='Repository types to process (default: BaseOS AppStream)'
|
||||
"--repo-types",
|
||||
nargs="+",
|
||||
default=["BaseOS", "AppStream"],
|
||||
help="Repository types to process (default: BaseOS AppStream)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--output-dir',
|
||||
"--output-dir",
|
||||
type=Path,
|
||||
default=Path('./html'),
|
||||
help='Output directory for HTML files (default: ./html)'
|
||||
default=Path("./html"),
|
||||
help="Output directory for HTML files (default: ./html)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--download-dir',
|
||||
"--download-dir",
|
||||
type=Path,
|
||||
default=Path('./tmp/downloads'),
|
||||
help='Directory for downloading packages (default: ./tmp/downloads)'
|
||||
default=Path("./tmp/downloads"),
|
||||
help="Directory for downloading packages (default: ./tmp/downloads)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--extract-dir',
|
||||
"--extract-dir",
|
||||
type=Path,
|
||||
default=Path('./tmp/extracts'),
|
||||
help='Directory for extracting man pages (default: ./tmp/extracts)'
|
||||
default=Path("./tmp/extracts"),
|
||||
help="Directory for extracting man pages (default: ./tmp/extracts)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--keep-rpms',
|
||||
action='store_true',
|
||||
help='Keep downloaded RPM files after processing'
|
||||
"--keep-rpms",
|
||||
action="store_true",
|
||||
help="Keep downloaded RPM files after processing",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--keep-extracts',
|
||||
action='store_true',
|
||||
help='Keep extracted man files after processing'
|
||||
"--keep-extracts",
|
||||
action="store_true",
|
||||
help="Keep extracted man files after processing",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--parallel-downloads',
|
||||
"--parallel-downloads",
|
||||
type=int,
|
||||
default=5,
|
||||
help='Number of parallel downloads (default: 5)'
|
||||
help="Number of parallel downloads (default: 5)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--parallel-conversions',
|
||||
"--parallel-conversions",
|
||||
type=int,
|
||||
default=10,
|
||||
help='Number of parallel HTML conversions (default: 10)'
|
||||
help="Number of parallel HTML conversions (default: 10)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--mirror',
|
||||
default='http://dl.rockylinux.org/',
|
||||
help='Rocky Linux mirror URL (default: http://dl.rockylinux.org/)'
|
||||
"--mirror",
|
||||
default="http://dl.rockylinux.org/",
|
||||
help="Rocky Linux mirror URL (default: http://dl.rockylinux.org/)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--template-dir',
|
||||
"--template-dir",
|
||||
type=Path,
|
||||
default=Path(__file__).parent.parent.parent / 'templates',
|
||||
help='Template directory (default: ./templates)'
|
||||
default=Path(__file__).parent.parent.parent / "templates",
|
||||
help="Template directory (default: ./templates)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'-v', '--verbose',
|
||||
action='store_true',
|
||||
help='Enable verbose logging'
|
||||
"-v", "--verbose", action="store_true", help="Enable verbose logging"
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--skip-sections',
|
||||
nargs='*',
|
||||
"--skip-sections",
|
||||
nargs="*",
|
||||
default=None,
|
||||
help='Man sections to skip (default: 3 3p 3pm). Use empty list to skip none.'
|
||||
help="Man sections to skip (default: 3 3p 3pm). Use empty list to skip none.",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--skip-packages',
|
||||
nargs='*',
|
||||
"--skip-packages",
|
||||
nargs="*",
|
||||
default=None,
|
||||
help='Package names to skip (default: lapack dpdk-devel gl-manpages). Use empty list to skip none.'
|
||||
help="Package names to skip (default: lapack dpdk-devel gl-manpages). Use empty list to skip none.",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--skip-languages',
|
||||
action='store_true',
|
||||
"--skip-languages",
|
||||
action="store_true",
|
||||
default=None,
|
||||
help='Skip non-English man pages (default: enabled)'
|
||||
help="Skip non-English man pages (default: enabled)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--keep-languages',
|
||||
action='store_true',
|
||||
help='Keep all languages (disables --skip-languages)'
|
||||
"--keep-languages",
|
||||
action="store_true",
|
||||
help="Keep all languages (disables --skip-languages)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--allow-all-sections',
|
||||
action='store_true',
|
||||
help='Include all man sections (overrides --skip-sections)'
|
||||
"--allow-all-sections",
|
||||
action="store_true",
|
||||
help="Include all man sections (overrides --skip-sections)",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
@@ -319,7 +322,7 @@ def main():
|
||||
skip_sections=args.skip_sections,
|
||||
skip_packages=args.skip_packages,
|
||||
skip_languages=skip_languages,
|
||||
allow_all_sections=args.allow_all_sections
|
||||
allow_all_sections=args.allow_all_sections,
|
||||
)
|
||||
|
||||
logger.info("Rocky Man - Rocky Linux Man Page Generator")
|
||||
@@ -368,5 +371,5 @@ def main():
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
|
||||
Reference in New Issue
Block a user