| """Build fuzzers idempotently in a given folder.""" |
| |
| import argparse |
| from pathlib import Path |
| import subprocess |
| |
| |
| def main(): |
| """Build fuzzers idempotently in a given folder.""" |
| parser = argparse.ArgumentParser() |
| parser.add_argument("folder") |
| args = parser.parse_args() |
| folder = Path(args.folder) |
| if not folder.exists(): |
| print(f"Cloning google/oss-fuzz into: {folder}") |
| folder.mkdir(parents=True) |
| subprocess.check_call( |
| [ |
| "git", |
| "clone", |
| "--single-branch", |
| "https://github.com/google/oss-fuzz", |
| str(folder), |
| ] |
| ) |
| else: |
| print(f"Using google/oss-fuzz in: {folder}") |
| if not (folder / "build").exists(): |
| print(f"Building fuzzers in: {folder / 'build'}") |
| subprocess.check_call( |
| [ |
| "python", |
| str(folder / "infra" / "helper.py"), |
| "build_fuzzers", |
| "markdown-it-py", |
| ] |
| ) |
| else: |
| print(f"Using existing fuzzers in: {folder / 'build'}") |
| |
| |
| if __name__ == "__main__": |
| main() |