aboutsummaryrefslogtreecommitdiff
path: root/src/nix/command.cc
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-11-22 16:03:31 +0100
committerEelco Dolstra <edolstra@gmail.com>2019-02-11 11:55:25 +0100
commitf70434b1fbbdb0e188718f0c55a8156a7aa08744 (patch)
tree227e2230b4c8338b8011eace5cea62d26fa6f9aa /src/nix/command.cc
parent15a16e5c05d547ec07170df2392263e5e891447b (diff)
Move Command and MultiCommand to libutil
Diffstat (limited to 'src/nix/command.cc')
-rw-r--r--src/nix/command.cc74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/nix/command.cc b/src/nix/command.cc
index e760c17d5..5967ab36c 100644
--- a/src/nix/command.cc
+++ b/src/nix/command.cc
@@ -6,80 +6,6 @@ namespace nix {
std::vector<ref<Command>> * RegisterCommand::commands = 0;
-void Command::printHelp(const string & programName, std::ostream & out)
-{
- Args::printHelp(programName, out);
-
- auto exs = examples();
- if (!exs.empty()) {
- out << "\n";
- out << "Examples:\n";
- for (auto & ex : exs)
- out << "\n"
- << " " << ex.description << "\n" // FIXME: wrap
- << " $ " << ex.command << "\n";
- }
-}
-
-MultiCommand::MultiCommand(const std::vector<ref<Command>> & _commands)
-{
- for (auto & command : _commands)
- commands.emplace(command->name(), command);
-
- expectedArgs.push_back(ExpectedArg{"command", 1, true, [=](std::vector<std::string> ss) {
- assert(!command);
- auto i = commands.find(ss[0]);
- if (i == commands.end())
- throw UsageError("'%s' is not a recognised command", ss[0]);
- command = i->second;
- }});
-}
-
-void MultiCommand::printHelp(const string & programName, std::ostream & out)
-{
- if (command) {
- command->printHelp(programName + " " + command->name(), out);
- return;
- }
-
- out << "Usage: " << programName << " <COMMAND> <FLAGS>... <ARGS>...\n";
-
- out << "\n";
- out << "Common flags:\n";
- printFlags(out);
-
- out << "\n";
- out << "Available commands:\n";
-
- Table2 table;
- for (auto & command : commands) {
- auto descr = command.second->description();
- if (!descr.empty())
- table.push_back(std::make_pair(command.second->name(), descr));
- }
- printTable(out, table);
-
-#if 0
- out << "\n";
- out << "For full documentation, run 'man " << programName << "' or 'man " << programName << "-<COMMAND>'.\n";
-#endif
-}
-
-bool MultiCommand::processFlag(Strings::iterator & pos, Strings::iterator end)
-{
- if (Args::processFlag(pos, end)) return true;
- if (command && command->processFlag(pos, end)) return true;
- return false;
-}
-
-bool MultiCommand::processArgs(const Strings & args, bool finish)
-{
- if (command)
- return command->processArgs(args, finish);
- else
- return Args::processArgs(args, finish);
-}
-
StoreCommand::StoreCommand()
{
}