aboutsummaryrefslogtreecommitdiff
path: root/source/app/wandac/src/cli.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2023-09-07 15:41:09 +0200
committerFelix Morgner <felix.morgner@gmail.com>2023-09-07 15:41:09 +0200
commitbbda83f674a97e80cf89bff3d12737dd5ecc3243 (patch)
treeb37a1c465eaa2f999fdde87547a44caaf8ff97e1 /source/app/wandac/src/cli.cpp
parent8e48049013a5a6668d2bd3c1bcb1fbc0ddd9534d (diff)
downloadwanda-bbda83f674a97e80cf89bff3d12737dd5ecc3243.tar.xz
wanda-bbda83f674a97e80cf89bff3d12737dd5ecc3243.zip
wandac: extract cli and commander listener
Diffstat (limited to 'source/app/wandac/src/cli.cpp')
-rw-r--r--source/app/wandac/src/cli.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/source/app/wandac/src/cli.cpp b/source/app/wandac/src/cli.cpp
new file mode 100644
index 0000000..954ca63
--- /dev/null
+++ b/source/app/wandac/src/cli.cpp
@@ -0,0 +1,30 @@
+#include "wandac/cli.hpp"
+
+#include <lyra/arg.hpp>
+#include <lyra/help.hpp>
+
+#include <ostream>
+
+namespace wandac
+{
+
+ auto cli::parse(lyra::args arguments, std::ostream & error_stream) -> bool
+ {
+ parser |= //
+ lyra::help(help) | //
+ lyra::arg{command, "command"}("The command to send to the deamon").required();
+
+ auto result = parser.parse(arguments);
+
+ if (!result)
+ {
+ error_stream << "Error while processing command line arguments: " << result.message() << '\n' << parser << '\n';
+ return false;
+ }
+
+ return true;
+ }
+
+ auto cli::print_usage(std::ostream & output_stream) -> void { output_stream << parser << '\n'; }
+
+} // namespace wandac