import json import multiprocessing import os import re import subprocess import sys def run_analyzer(data): os.chdir(data["directory"]) command = ( data["command"] + f" --analyze --analyzer-output html -o analyzer-results -Xclang -analyzer-config -Xclang max-nodes=75000" ) print(command) subprocess.run(command, shell=True, check=True) def pool_error(e): print("Error analyzing file:", e) def main(): db_path = sys.argv[1] database = json.load(open(db_path)) with multiprocessing.Pool() as pool: pool.map_async(run_analyzer, [k for k in database], error_callback=pool_error) pool.close() pool.join() if __name__ == "__main__": main()