Ctrl K
ComunidadGuías…

scripts/audit_symlink_targets.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""Ensure tracked symlinks resolve inside the repository tree."""
from __future__ import annotations
import argparse
from pathlib import Path
from scripts.audit_common import print_failures,require_root,tracked_files

def audit(root:Path)->list[str]:
    root=require_root(root).resolve();out=[]
    for rel in tracked_files(root):
        path=root/rel
        if not path.is_symlink():continue
        try:resolved=path.resolve(strict=False);resolved.relative_to(root)
        except (OSError,ValueError,RuntimeError):out.append(f'{rel}: symlink target escapes repository')
    return out
def main(argv=None):
    p=argparse.ArgumentParser(description=__doc__);p.add_argument('root',nargs='?',default='.');return print_failures(audit(Path(p.parse_args(argv).root)))
if __name__=='__main__':raise SystemExit(main())