aboutsummaryrefslogtreecommitdiff
path: root/src/builtins.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/builtins.cpp')
-rw-r--r--src/builtins.cpp41
1 files changed, 30 insertions, 11 deletions
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 <QObject>
#include <QVersionNumber>
#include <iostream>
-#include "version.h"
-#include <QTranslator>
-
-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<std::string>::const_iterator beginargs, std::vector<std::string>::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;
+}