aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmljsrootgen/main.cpp
diff options
context:
space:
mode:
authorAmanda Hamblin-Trué <amanda.hamblin-true@qt.io>2023-06-27 14:29:15 +0200
committerAmanda Hamblin-Trué <amanda.hamblin-true@qt.io>2023-07-05 09:14:20 +0200
commit74232a8b316bcde43acb8e238fbb29fecc74b7d3 (patch)
treed25db1fb63ca38205aff051d11f348e9504151f6 /tools/qmljsrootgen/main.cpp
parent2d399217fc8b61ad3041dfaea93868915d4e60a1 (diff)
qmljsrootgen: port to QCommandLineParser
Additionally, improved the error message for missing output path. Change-Id: I3885a06157100399c160853b3137dd28aa965c72 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tools/qmljsrootgen/main.cpp')
-rw-r--r--tools/qmljsrootgen/main.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/tools/qmljsrootgen/main.cpp b/tools/qmljsrootgen/main.cpp
index 2bd54692d1..353859c08f 100644
--- a/tools/qmljsrootgen/main.cpp
+++ b/tools/qmljsrootgen/main.cpp
@@ -10,6 +10,7 @@
#include <QtCore/qcoreapplication.h>
#include <QtCore/qfile.h>
+#include <QtCore/qcommandlineparser.h>
#include <QtCore/qjsondocument.h>
#include <QtCore/qjsonarray.h>
@@ -326,14 +327,22 @@ int main(int argc, char *argv[])
QCoreApplication app(argc, argv);
QCoreApplication::setApplicationVersion(QLatin1String(QT_VERSION_STR));
- QStringList args = app.arguments();
+ QCommandLineParser parser;
+ parser.addHelpOption();
+ parser.setApplicationDescription("Internal development tool.");
+ parser.addPositionalArgument("path", "Output json path.", "path");
- if (args.size() != 2) {
- qWarning().noquote() << app.applicationName() << "[output json path]";
- return 1;
+ parser.process(app);
+
+ const QStringList args = parser.positionalArguments();
+ if (auto size = args.size(); size == 0) {
+ qWarning().noquote().nospace() << app.applicationName() << ": Output path missing.";
+ return EXIT_FAILURE;
+ } else if (size >= 2) {
+ qWarning().noquote().nospace() << app.applicationName() << ": Too many output paths given. Only one allowed.";
}
- QString fileName = args.at(1);
+ const QString fileName = args.at(0);
QJSEngine engine;
engine.installExtensions(QJSEngine::AllExtensions);