Create and return a parser (argparse.ArgumentParser instance) for main() to use
()
| 1044 | |
| 1045 | # Separate into a function for testing purposes |
| 1046 | def get_parser(): |
| 1047 | """Create and return a parser (argparse.ArgumentParser instance) for main() |
| 1048 | to use""" |
| 1049 | parser = argparse.ArgumentParser(description="Common User Passwords Profiler") |
| 1050 | group = parser.add_mutually_exclusive_group(required=False) |
| 1051 | group.add_argument( |
| 1052 | "-i", |
| 1053 | "--interactive", |
| 1054 | action="store_true", |
| 1055 | help="Interactive questions for user password profiling", |
| 1056 | ) |
| 1057 | group.add_argument( |
| 1058 | "-w", |
| 1059 | dest="improve", |
| 1060 | metavar="FILENAME", |
| 1061 | help="Use this option to improve existing dictionary," |
| 1062 | " or WyD.pl output to make some pwnsauce", |
| 1063 | ) |
| 1064 | group.add_argument( |
| 1065 | "-l", |
| 1066 | dest="download_wordlist", |
| 1067 | action="store_true", |
| 1068 | help="Download huge wordlists from repository", |
| 1069 | ) |
| 1070 | group.add_argument( |
| 1071 | "-a", |
| 1072 | dest="alecto", |
| 1073 | action="store_true", |
| 1074 | help="Parse default usernames and passwords directly" |
| 1075 | " from Alecto DB. Project Alecto uses purified" |
| 1076 | " databases of Phenoelit and CIRT which were merged" |
| 1077 | " and enhanced", |
| 1078 | ) |
| 1079 | group.add_argument( |
| 1080 | "-v", "--version", action="store_true", help="Show the version of this program." |
| 1081 | ) |
| 1082 | parser.add_argument( |
| 1083 | "-q", "--quiet", action="store_true", help="Quiet mode (don't print banner)" |
| 1084 | ) |
| 1085 | |
| 1086 | return parser |
| 1087 | |
| 1088 | |
| 1089 | if __name__ == "__main__": |