def analyze_path()

in scripts/elf_rockylinux_dependency_analyzer.py [0:0]


def analyze_path(path, grand_summary, grand_special_cases, grand_missing_libraries):
    if os.path.isfile(path):
        packages, special_cases, missing_libraries = process_binary(path)
        for package_name, full_package_name in packages:
            grand_summary[package_name].add(full_package_name)
        grand_special_cases.extend((case, path) for case in special_cases)
        for lib in missing_libraries:
            grand_missing_libraries[lib].add(path)
    elif os.path.isdir(path):
        for root, dirs, files in os.walk(path):
            for file in files:
                file_path = os.path.join(root, file)
                if is_elf_binary(file_path):
                    packages, special_cases, missing_libraries = process_binary(file_path)
                    for package_name, full_package_name in packages:
                        grand_summary[package_name].add(full_package_name)
                    grand_special_cases.extend((case, file_path) for case in special_cases)
                    for lib in missing_libraries:
                        grand_missing_libraries[lib].add(file_path)
    else:
        print(f"Error: {path} is neither a valid file nor a directory.")
    if grand_special_cases:
        print(f"Accumulated special cases after processing {path}:")
        for case, binary in grand_special_cases:
            print(f"  - {case} (in {binary})")
    else:
        print(f"No special cases accumulated after processing {path}")