(sysv_args=None)
| 1068 | |
| 1069 | |
| 1070 | def main(sysv_args=None): |
| 1071 | loggers.configure_root_logger() |
| 1072 | if not sysv_args: |
| 1073 | sysv_args = sys.argv |
| 1074 | parser = SubcommandAwareArgumentParser(prog=sysv_args.pop(0)) |
| 1075 | |
| 1076 | # Top level args |
| 1077 | parser.add_argument( |
| 1078 | "--version", |
| 1079 | "-v", |
| 1080 | action="version", |
| 1081 | version="%(prog)s " + (version.version_string()), |
| 1082 | help="Show program's version number and exit.", |
| 1083 | ) |
| 1084 | parser.add_argument( |
| 1085 | "--debug", |
| 1086 | "-d", |
| 1087 | action="store_true", |
| 1088 | help="Show additional pre-action logging (default: %(default)s).", |
| 1089 | default=False, |
| 1090 | ) |
| 1091 | parser.add_argument( |
| 1092 | "--force", |
| 1093 | action="store_true", |
| 1094 | help=( |
| 1095 | "Force running even if no datasource is" |
| 1096 | " found (use at your own risk)." |
| 1097 | ), |
| 1098 | dest="force", |
| 1099 | default=False, |
| 1100 | ) |
| 1101 | |
| 1102 | parser.add_argument( |
| 1103 | "--all-stages", |
| 1104 | dest="all_stages", |
| 1105 | action="store_true", |
| 1106 | help=( |
| 1107 | "Run cloud-init's stages under a single process using a " |
| 1108 | "synchronization protocol. This is not intended for CLI usage." |
| 1109 | ), |
| 1110 | default=False, |
| 1111 | ) |
| 1112 | |
| 1113 | parser.set_defaults(reporter=None) |
| 1114 | subparsers = parser.add_subparsers(title="Subcommands", dest="subcommand") |
| 1115 | |
| 1116 | # Each action and its sub-options (if any) |
| 1117 | parser_init = subparsers.add_parser( |
| 1118 | "init", help="Initialize cloud-init and perform initial modules." |
| 1119 | ) |
| 1120 | parser_init.add_argument( |
| 1121 | "--local", |
| 1122 | "-l", |
| 1123 | action="store_true", |
| 1124 | help="Start in local mode (default: %(default)s).", |
| 1125 | default=False, |
| 1126 | ) |
| 1127 | parser_init.add_argument( |
no test coverage detected