| 187 | } |
| 188 | |
| 189 | static void printHelpFor(Command *command, bool showFlags, std::ostream &out) { |
| 190 | static const int COMMAND_WIDTH = 10; |
| 191 | out << std::left << std::setw(COMMAND_WIDTH - 1) << command->getName() |
| 192 | << " " << command->getDescription() << std::endl; |
| 193 | if(showFlags) { |
| 194 | for(auto kv : command->getSpec().getFlagSpecs()) { |
| 195 | auto &spec = kv.second; |
| 196 | out << std::string(COMMAND_WIDTH, ' '); |
| 197 | for(auto a : spec.getFlagList()) { |
| 198 | out << a << " "; |
| 199 | } |
| 200 | out << ": takes type " |
| 201 | << ArgumentSpec::getTypeName(spec.getType()) << std::endl; |
| 202 | } |
| 203 | if(command->getSpec().getIndexSpecs().size() > 0) { |
| 204 | out << std::string(COMMAND_WIDTH, ' '); |
| 205 | for(auto &spec : command->getSpec().getIndexSpecs()) { |
| 206 | out << "<" << ArgumentSpec::getTypeName(spec.getType()) << "> "; |
| 207 | } |
| 208 | out << std::endl; |
| 209 | } |
| 210 | out << std::endl; |
| 211 | } |
| 212 | } |
| 213 | |
| 214 | bool FullCommandList::helpCommand(ShellState &state, ArgumentValueList &args) const { |
| 215 | bool showFlags = args.getBool("-l"); |
no test coverage detected