summaryrefslogtreecommitdiff
path: root/src/commandline.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/commandline.cpp')
-rw-r--r--src/commandline.cpp58
1 files changed, 29 insertions, 29 deletions
diff --git a/src/commandline.cpp b/src/commandline.cpp
index fd2fcb51..5e65424c 100644
--- a/src/commandline.cpp
+++ b/src/commandline.cpp
@@ -95,34 +95,34 @@ std::optional<int> CommandLine::run(const std::wstring& line)
if (c->name() == commandName) {
// this is a command
- // remove the command name itself
- opts.erase(opts.begin());
+ // remove the command name itself
+ opts.erase(opts.begin());
try
{
- // parse the the remainder of the command line according to the
- // command's options
- po::wcommand_line_parser parser(opts);
+ // legacy commands handle their own parsing, such as 'launch'; don't
+ // attempt to parse anything here
+ if (!c->legacy()) {
+ // parse the the remainder of the command line according to the
+ // command's options
+ po::wcommand_line_parser parser(opts);
- auto co = c->allOptions();
- parser.options(co);
+ auto co = c->allOptions();
+ parser.options(co);
- if (c->allow_unregistered()) {
- parser.allow_unregistered();
- }
-
- auto pos = c->positional();
- parser.positional(pos);
+ auto pos = c->positional();
+ parser.positional(pos);
- parsed = parser.run();
+ parsed = parser.run();
- po::store(parsed, m_vm);
- po::notify(m_vm);
+ po::store(parsed, m_vm);
+ po::notify(m_vm);
- if (m_vm.count("help")) {
- env::Console console;
- std::cout << usage(c.get()) << "\n";
- return 0;
+ if (m_vm.count("help")) {
+ env::Console console;
+ std::cout << usage(c.get()) << "\n";
+ return 0;
+ }
}
// run the command
@@ -405,11 +405,6 @@ std::string Command::usageLine() const
return name() + " " + getUsageLine();
}
-bool Command::allow_unregistered() const
-{
- return false;
-}
-
po::options_description Command::allOptions() const
{
po::options_description d;
@@ -435,6 +430,11 @@ po::positional_options_description Command::positional() const
return getPositional();
}
+bool Command::legacy() const
+{
+ return true;
+}
+
std::string Command::getUsageLine() const
{
return "[options]";
@@ -522,14 +522,14 @@ std::optional<int> CrashDumpCommand::doRun()
}
-bool LaunchCommand::allow_unregistered() const
+Command::Meta LaunchCommand::meta() const
{
- return true;
+ return {"launch", "(internal, do not use)"};
}
-Command::Meta LaunchCommand::meta() const
+bool LaunchCommand::legacy() const
{
- return {"launch", "(internal, do not use)"};
+ return true;
}
std::optional<int> LaunchCommand::doRun()