parser.add_argument('-v', '--verbose', action='count', help='increases the verbosity level') parser.add_argument('-a', '--all', action='store_true', help='output all extracted information') args = parser.parse_args() crashalyzer = CrashAnalyzer() crashes = [] curr = 1 out = None for entry in args.f: if os.path.isfile(entry): with open(entry, 'r') as file: print("[*] processing file %i of %i" % (curr, len(args.f))) curr += 1 report = Report(file) if not report.is_usable(): print("[!] unusable report: %s, skipping" % report.filename) else: crashes.append(crashalyzer.analyze_report(report)) else: print("[!] could not open file %s, skipping" % entry) if args.unique: unique_crashes = [] for crash in crashes: if not crash in unique_crashes: unique_crashes.append(crash) else: print("[*] %s is (likely) a duplicate of %s" % (crash.id, unique_crashes[unique_crashes.index(crash)].id)) crashes = unique_crashes