Main method takes argument from top level mesos and parses them to call the appropriate method.
(self, argv)
| 130 | return (option, comp_words) |
| 131 | |
| 132 | def main(self, argv): |
| 133 | """ |
| 134 | Main method takes argument from top level mesos and parses them |
| 135 | to call the appropriate method. |
| 136 | """ |
| 137 | command_strings = cli.util.format_commands_help(self.COMMANDS) |
| 138 | |
| 139 | usage = self.USAGE.format( |
| 140 | plugin=self.PLUGIN_NAME, |
| 141 | short_help=self.SHORT_HELP, |
| 142 | commands=command_strings) |
| 143 | |
| 144 | arguments = docopt( |
| 145 | usage, |
| 146 | argv=argv, |
| 147 | version=self.VERSION, |
| 148 | program="mesos " + self.PLUGIN_NAME, |
| 149 | options_first=True) |
| 150 | |
| 151 | cmd = arguments["<command>"] |
| 152 | argv = arguments["<args>"] |
| 153 | |
| 154 | if cmd in self.COMMANDS.keys(): |
| 155 | if "external" not in self.COMMANDS[cmd]: |
| 156 | argument_format, short_help, long_help, flag_format = \ |
| 157 | cli.util.format_subcommands_help(self.COMMANDS[cmd]) |
| 158 | |
| 159 | usage = SUBCOMMAND_USAGE.format( |
| 160 | plugin=self.PLUGIN_NAME, |
| 161 | command=cmd, |
| 162 | arguments=argument_format, |
| 163 | flags=flag_format, |
| 164 | short_help=short_help, |
| 165 | long_help=long_help) |
| 166 | |
| 167 | arguments = docopt( |
| 168 | usage, |
| 169 | argv=argv, |
| 170 | program="mesos " + self.PLUGIN_NAME + " " + cmd, |
| 171 | version=self.VERSION, |
| 172 | options_first=True) |
| 173 | |
| 174 | if "alias" in self.COMMANDS[cmd]: |
| 175 | cmd = self.COMMANDS[cmd]["alias"] |
| 176 | |
| 177 | self.__setup__(cmd, argv) |
| 178 | return getattr(self, cmd.replace("-", "_"))(arguments) |
| 179 | |
| 180 | return self.main(["--help"]) |