()
| 337 | |
| 338 | |
| 339 | def main(): |
| 340 | parser = argparse.ArgumentParser(description='shadowhook record parser.') |
| 341 | parser.add_argument('-m', '--more-info', action='store_true', help='show more info') |
| 342 | parser.add_argument('-f', '--item-flags', default='111111111111', required=False, help='record item flags') |
| 343 | parser.add_argument('-i', '--input-file', default='./input.txt', required=False, help='record file') |
| 344 | parser.add_argument('-l', '--input-line', default='', required=False, help='record line') |
| 345 | args = parser.parse_args() |
| 346 | |
| 347 | global g_more_info |
| 348 | if args.more_info: g_more_info = True |
| 349 | |
| 350 | if len(args.item_flags) != len(ItemInfos): |
| 351 | raise ValueError(f"The item-flags must be {len(ItemInfos)} characters long") |
| 352 | if set(args.item_flags) > {'0', '1'}: |
| 353 | raise ValueError(f"The item-flags can only contain 0 and 1.") |
| 354 | if args.item_flags[ITEM_OP_IDX] != '1': |
| 355 | raise ValueError(f"The OP flag in item-flags must be 1.") |
| 356 | |
| 357 | if len(args.input_line) > 0: |
| 358 | parse_line(args.input_line, args.item_flags) |
| 359 | else: |
| 360 | with open(args.input_file, 'r') as f: |
| 361 | i = 1 |
| 362 | for line in f: |
| 363 | idx = line.find(LOGCAT_TAG) |
| 364 | if idx > 0: |
| 365 | line = line[idx + len(LOGCAT_TAG):] |
| 366 | line = line.strip() |
| 367 | if len(line) > 0: |
| 368 | print(f"\n# record {i}\n----------------------------------------------------------------------") |
| 369 | i += 1 |
| 370 | parse_line(line, args.item_flags) |
| 371 | |
| 372 | print('\n** END **') |
| 373 | |
| 374 | |
| 375 | if __name__ == '__main__': |
no test coverage detected