Mercurial > irccd
changeset 340:0f14931a76c1
Irccdctl: reenable
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sat, 12 Nov 2016 22:02:54 +0100 |
parents | 6f0682688527 |
children | 45065955ba2d |
files | CMakeLists.txt irccdctl/CMakeLists.txt irccdctl/main.cpp libcommon/CMakeLists.txt libcommon/irccd/util.hpp |
diffstat | 5 files changed, 107 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/CMakeLists.txt Sat Nov 12 21:54:00 2016 +0100 +++ b/CMakeLists.txt Sat Nov 12 22:02:54 2016 +0100 @@ -87,7 +87,7 @@ endif () add_subdirectory(irccd) -#add_subdirectory(irccdctl) +add_subdirectory(irccdctl) add_subdirectory(contrib) if (WITH_JS)
--- a/irccdctl/CMakeLists.txt Sat Nov 12 21:54:00 2016 +0100 +++ b/irccdctl/CMakeLists.txt Sat Nov 12 22:02:54 2016 +0100 @@ -15,16 +15,69 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # -# Project project(irccdctl) +set( + SOURCES + ${irccdctl_SOURCE_DIR}/CMakeLists.txt + ${irccdctl_SOURCE_DIR}/cli.cpp + ${irccdctl_SOURCE_DIR}/cli.hpp + ${irccdctl_SOURCE_DIR}/cli-plugin-config.cpp + ${irccdctl_SOURCE_DIR}/cli-plugin-config.hpp + ${irccdctl_SOURCE_DIR}/cli-plugin-info.cpp + ${irccdctl_SOURCE_DIR}/cli-plugin-info.hpp + ${irccdctl_SOURCE_DIR}/cli-plugin-list.cpp + ${irccdctl_SOURCE_DIR}/cli-plugin-list.hpp + ${irccdctl_SOURCE_DIR}/cli-plugin-load.cpp + ${irccdctl_SOURCE_DIR}/cli-plugin-load.hpp + ${irccdctl_SOURCE_DIR}/cli-plugin-reload.cpp + ${irccdctl_SOURCE_DIR}/cli-plugin-reload.hpp + ${irccdctl_SOURCE_DIR}/cli-plugin-unload.cpp + ${irccdctl_SOURCE_DIR}/cli-plugin-unload.hpp + ${irccdctl_SOURCE_DIR}/cli-server-cmode.cpp + ${irccdctl_SOURCE_DIR}/cli-server-cmode.hpp + ${irccdctl_SOURCE_DIR}/cli-server-cnotice.cpp + ${irccdctl_SOURCE_DIR}/cli-server-cnotice.hpp + ${irccdctl_SOURCE_DIR}/cli-server-connect.cpp + ${irccdctl_SOURCE_DIR}/cli-server-connect.hpp + ${irccdctl_SOURCE_DIR}/cli-server-disconnect.cpp + ${irccdctl_SOURCE_DIR}/cli-server-disconnect.hpp + ${irccdctl_SOURCE_DIR}/cli-server-info.cpp + ${irccdctl_SOURCE_DIR}/cli-server-info.hpp + ${irccdctl_SOURCE_DIR}/cli-server-invite.cpp + ${irccdctl_SOURCE_DIR}/cli-server-invite.hpp + ${irccdctl_SOURCE_DIR}/cli-server-join.cpp + ${irccdctl_SOURCE_DIR}/cli-server-join.hpp + ${irccdctl_SOURCE_DIR}/cli-server-kick.cpp + ${irccdctl_SOURCE_DIR}/cli-server-kick.hpp + ${irccdctl_SOURCE_DIR}/cli-server-list.cpp + ${irccdctl_SOURCE_DIR}/cli-server-list.hpp + ${irccdctl_SOURCE_DIR}/cli-server-me.cpp + ${irccdctl_SOURCE_DIR}/cli-server-me.hpp + ${irccdctl_SOURCE_DIR}/cli-server-message.cpp + ${irccdctl_SOURCE_DIR}/cli-server-message.hpp + ${irccdctl_SOURCE_DIR}/cli-server-mode.cpp + ${irccdctl_SOURCE_DIR}/cli-server-mode.hpp + ${irccdctl_SOURCE_DIR}/cli-server-nick.cpp + ${irccdctl_SOURCE_DIR}/cli-server-nick.hpp + ${irccdctl_SOURCE_DIR}/cli-server-notice.cpp + ${irccdctl_SOURCE_DIR}/cli-server-notice.hpp + ${irccdctl_SOURCE_DIR}/cli-server-part.cpp + ${irccdctl_SOURCE_DIR}/cli-server-part.hpp + ${irccdctl_SOURCE_DIR}/cli-server-reconnect.cpp + ${irccdctl_SOURCE_DIR}/cli-server-reconnect.hpp + ${irccdctl_SOURCE_DIR}/main.cpp +) + irccd_define_executable( TARGET irccdctl DESCRIPTION "Irccd controller." - SOURCES CMakeLists.txt main.cpp - LIBRARIES libirccd + SOURCES ${SOURCES} + LIBRARIES libirccdctl + INCLUDES ${irccdctl_SOURCE_DIR} ) if (UNIX) set_target_properties(irccdctl PROPERTIES LINK_FLAGS -pthread) endif () +
--- a/irccdctl/main.cpp Sat Nov 12 21:54:00 2016 +0100 +++ b/irccdctl/main.cpp Sat Nov 12 22:02:54 2016 +0100 @@ -16,28 +16,39 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <irccd/irccdctl.hpp> -#include <irccd/logger.hpp> -#include <irccd/path.hpp> -#include <irccd/system.hpp> +#include "client.hpp" +#include "irccdctl.hpp" + +#include "cli-plugin-reload.hpp" +#include "cli-plugin-unload.hpp" +#include "cli-server-cmode.hpp" +#include "cli-server-cnotice.hpp" +#include "cli-server-connect.hpp" +#include "cli-server-disconnect.hpp" +#include "cli-server-info.hpp" +#include "cli-server-invite.hpp" +#include "cli-server-join.hpp" +#include "cli-server-kick.hpp" +#include "cli-server-list.hpp" +#include "cli-server-me.hpp" +#include "cli-server-message.hpp" +#include "cli-server-mode.hpp" +#include "cli-server-nick.hpp" +#include "cli-server-notice.hpp" +#include "cli-server-part.hpp" +#include "cli-server-reconnect.hpp" using namespace irccd; -int main(int argc, char **argv) +int main(int, char **) { - // TODO: move to Application - sys::setProgramName("irccdctl"); - path::setApplicationPath(argv[0]); - log::setVerbose(false); - try { - Irccdctl ctl; + Irccdctl ctl(std::make_unique<Client>()); + ctl.client().connect(net::local::create("/tmp/irccd.sock")); - ctl.run(--argc, ++argv); + cli::ServerReconnectCli command; + command.exec(ctl, {"local"}); } catch (const std::exception &ex) { - log::warning() << "error: " << ex.what() << std::endl; - std::exit(1); + std::cerr << ex.what() << std::endl; } - - return 0; }
--- a/libcommon/CMakeLists.txt Sat Nov 12 21:54:00 2016 +0100 +++ b/libcommon/CMakeLists.txt Sat Nov 12 22:02:54 2016 +0100 @@ -33,7 +33,11 @@ ${libcommon_SOURCE_DIR}/CMakeLists.txt ${HEADERS} ${SOURCES} - LIBRARIES extern-cppformat extern-json + LIBRARIES + extern-cppformat + extern-json + $<$<BOOL:${WITH_SSL}>:OpenSSL::SSL> + $<$<BOOL:${WITH_SSL}>:OpenSSL::Crypto> PUBLIC_INCLUDES $<BUILD_INTERFACE:${IRCCD_FAKEROOTDIR}/include/irccd> $<BUILD_INTERFACE:${libcommon_SOURCE_DIR}/irccd>
--- a/libcommon/irccd/util.hpp Sat Nov 12 21:54:00 2016 +0100 +++ b/libcommon/irccd/util.hpp Sat Nov 12 22:02:54 2016 +0100 @@ -598,6 +598,24 @@ return toString(get(json, key), def); } +/** + * Print the value as human readable. + * + * \param value the value + * \return the string + */ +inline std::string pretty(const nlohmann::json &value) +{ + switch (value.type()) { + case nlohmann::json::value_t::boolean: + return value.get<bool>() ? "true" : "false"; + case nlohmann::json::value_t::string: + return value.get<std::string>(); + default: + return value.dump(); + } +} + } // !json /**