parse ARGVs using argparse Returns: parser, parsed ARGVs
()
| 611 | |
| 612 | |
| 613 | def argv_parser(): |
| 614 | """ |
| 615 | parse ARGVs using argparse |
| 616 | |
| 617 | Returns: |
| 618 | parser, parsed ARGVs |
| 619 | """ |
| 620 | # create parser |
| 621 | parser = argparse.ArgumentParser(prog="OWASP Honeypot", add_help=False) |
| 622 | # create menu |
| 623 | docker_config = docker_configuration() |
| 624 | user_config = user_configuration() |
| 625 | engineOpt = parser.add_argument_group( |
| 626 | "OHP Engine", |
| 627 | "OHP Engine input options" |
| 628 | ) |
| 629 | # add select module options + list of available modules |
| 630 | engineOpt.add_argument( |
| 631 | "-m", "--select-module", |
| 632 | action="store", |
| 633 | dest="selected_modules", |
| 634 | default=user_config["default_selected_modules"], |
| 635 | help="select module(s) {0}".format( |
| 636 | load_all_modules() + ["all"] |
| 637 | ) |
| 638 | ) |
| 639 | # by default all modules are selected, in case users can exclude one or |
| 640 | # some (separated with comma) |
| 641 | engineOpt.add_argument( |
| 642 | "-x", |
| 643 | "--exclude-module", |
| 644 | action="store", |
| 645 | dest="excluded_modules", |
| 646 | default=user_config["default_excluded_modules"], |
| 647 | help="select modules(s) to exclude {0}".format( |
| 648 | load_all_modules() |
| 649 | ) |
| 650 | ) |
| 651 | # limit the virtual machine storage to avoid related abuse |
| 652 | engineOpt.add_argument( |
| 653 | "-s", |
| 654 | "--vm-storage-limit", |
| 655 | action="store", |
| 656 | dest="virtual_machine_storage_limit", |
| 657 | type=float, |
| 658 | default=docker_config["virtual_machine_storage_limit"], |
| 659 | help="virtual machine storage limit" |
| 660 | ) |
| 661 | # reset the containers once in a time to prevent being continues botnet |
| 662 | # zombie |
| 663 | engineOpt.add_argument( |
| 664 | "-r", |
| 665 | "--vm-reset-factory-time", |
| 666 | action="store", |
| 667 | dest="virtual_machine_container_reset_factory_time_seconds", |
| 668 | type=int, |
| 669 | default=docker_config["virtual_machine_container_reset_factory_time_seconds"], |
| 670 | help="virtual machine reset factory time" |
no test coverage detected