aboutsummaryrefslogtreecommitdiff
path: root/src/wandac.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2018-12-11 07:42:05 +0100
committerFelix Morgner <felix.morgner@gmail.com>2018-12-11 07:42:05 +0100
commited419140280553b070943b7ba539120a26ff5686 (patch)
tree3d134977a6dfae71a45c318305166d044b50320d /src/wandac.cpp
parentd3e691c9200b7b782c8acf17468068a699588a73 (diff)
downloadwanda-ed419140280553b070943b7ba539120a26ff5686.tar.xz
wanda-ed419140280553b070943b7ba539120a26ff5686.zip
wanda: restructure directory hierarchy
Diffstat (limited to 'src/wandac.cpp')
-rw-r--r--src/wandac.cpp97
1 files changed, 0 insertions, 97 deletions
diff --git a/src/wandac.cpp b/src/wandac.cpp
deleted file mode 100644
index e8be1ef..0000000
--- a/src/wandac.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#include "command.hpp"
-#include "commander.hpp"
-#include "environment.hpp"
-#include "logging.hpp"
-#include "xdg.hpp"
-
-#include <asio.hpp>
-#include <clara.hpp>
-#include <spdlog/sinks/stdout_color_sinks.h>
-#include <spdlog/spdlog.h>
-
-#include <cstdlib>
-#include <filesystem>
-#include <iostream>
-#include <memory>
-
-struct cli
-{
- std::string command{};
- bool help{};
-
- clara::Parser parser;
-
- auto parse(int argc, char const * const * argv, std::ostream & error)
- {
- parser = clara::Arg{command, "command"}("The command to send to the deamon").required() |
- clara::Help(help);
-
- auto result = parser.parse(clara::Args{argc, argv});
-
- if (!result)
- {
- error << "Error while processing command line arguments: "
- << result.errorMessage()
- << '\n'
- << parser
- << '\n';
- return false;
- }
- else if (command.empty())
- {
- error << "Missing required argument 'command'\n"
- << parser
- << '\n';
- return false;
- }
-
- return true;
- }
-};
-
-struct listener : wanda::commander::listener
-{
- listener(::cli & cli)
- : m_cli{cli}
- {
- }
-
- void on_connected(wanda::commander & commander) override
- {
- if (m_cli.command == "change")
- {
- commander.send(wanda::make_change_command());
- commander.stop();
- }
- }
-
-private:
- ::cli & m_cli;
-};
-
-int main(int argc, char const * const * argv)
-{
- auto cli = ::cli{};
- if (!cli.parse(argc, argv, std::cerr))
- {
- return EXIT_FAILURE;
- }
- else if (cli.help)
- {
- std::cout << cli.parser << '\n';
- return EXIT_SUCCESS;
- }
-
- wanda::initialize_logger(std::make_shared<spdlog::sinks::stderr_color_sink_st>());
-
- auto interface = wanda::xdg_path_for(wanda::xdg_directory::runtime_dir, wanda::environment{}) / ".wanda_interface";
- auto service = asio::io_service{};
- auto listener = ::listener{cli};
-
- auto commander = wanda::commander{service, interface, listener};
-
- wanda::get_logger()->info("trying to connect to wanda control interface on '{}'", interface.native());
- commander.start();
-
- service.run();
-} \ No newline at end of file