From eb311838538b80fb3280aa9ab5b57abc22925926 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 9 Nov 2019 21:05:07 +0200 Subject: Add configuration subcommand --dump: Write current configuration to stdout and exit --- src/builtins.cpp | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) (limited to 'src/builtins.cpp') diff --git a/src/builtins.cpp b/src/builtins.cpp index 1af2dc8..ab5942c 100644 --- a/src/builtins.cpp +++ b/src/builtins.cpp @@ -7,20 +7,11 @@ */ #include "builtins.h" +#include "configuration.h" +#include "version.h" #include #include #include -#include "version.h" -#include - -inline const char* tr(const QTranslator *translator, const char *text) -{ - const auto t = translator->translate("builtins", text); - if(t.isEmpty()) - return text; - else - return qUtf8Printable(t); -} int builtins::version() { @@ -34,3 +25,31 @@ int builtins::build() std::cout << poi_Version << std::endl; return 0; } + +int builtins::configuration(const std::string &progname, std::vector::const_iterator beginargs, std::vector::const_iterator endargs) +{ + args::ArgumentParser parser("configuration"); + parser.Prog(progname); + + args::HelpFlag help(parser, "help", "Display this help message and exit.", { 'h', "help" }); + args::Flag dump(parser, "dump", "Dump currently used configuration and exit", { "dump" }); + + try { + parser.ParseArgs(beginargs, endargs); + } catch(args::Help &e) { + std::cout << parser; + return 0; + } catch(args::Error &e) { + std::cerr << e.what() << std::endl; + std::cerr << parser; + return -1; + } + + if(dump) { + Configuration conf; + std::cout << conf << std::endl; + return 0; + } + + return 0; +} -- cgit v1.2.1