File indexing completed on 2024-05-12 05:25:24
0001 /* 0002 SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "pimdataexportconsole_debug.h" 0008 #include "pimdataexporter-version.h" 0009 #include "pimdataexporterconsole.h" 0010 #include <KAboutData> 0011 #include <KLocalizedString> 0012 0013 #include <QCommandLineOption> 0014 #include <QCommandLineParser> 0015 #include <QCoreApplication> 0016 0017 #include <QTimer> 0018 0019 int main(int argc, char *argv[]) 0020 { 0021 QCoreApplication app(argc, argv); 0022 0023 QCommandLineParser parser; 0024 KAboutData aboutData(QStringLiteral("pimdataexporterconsole"), 0025 i18n("PIM Data Exporter Console"), 0026 QStringLiteral(PIMDATAEXPORTER_VERSION), 0027 i18n("PIM Data Exporter Console"), 0028 KAboutLicense::GPL_V2, 0029 i18n("Copyright © 2015-%1 pimdataexporter authors", QStringLiteral("2024"))); 0030 aboutData.addAuthor(i18n("Laurent Montel"), i18n("Maintainer"), QStringLiteral("montel@kde.org")); 0031 const QCommandLineOption logOption(QStringList() << QStringLiteral("logfile"), i18n("File to log information to."), QStringLiteral("file")); 0032 parser.addOption(logOption); 0033 const QCommandLineOption templateOption(QStringList() << QStringLiteral("template"), 0034 i18n("Template file to define what data, settings to import or export."), 0035 QStringLiteral("file")); 0036 parser.addOption(templateOption); 0037 const QCommandLineOption importOption(QStringList() << QStringLiteral("import"), i18n("Import the given file."), QStringLiteral("file")); 0038 parser.addOption(importOption); 0039 const QCommandLineOption exportOption(QStringList() << QStringLiteral("export"), i18n("Export the given file."), QStringLiteral("file")); 0040 parser.addOption(exportOption); 0041 0042 aboutData.setupCommandLine(&parser); 0043 parser.process(app); 0044 aboutData.processCommandLine(&parser); 0045 0046 QString importFile; 0047 QString exportFile; 0048 if (parser.isSet(importOption)) { 0049 importFile = parser.value(importOption); 0050 } else if (parser.isSet(exportOption)) { 0051 exportFile = parser.value(exportOption); 0052 } 0053 if (importFile.isEmpty() && exportFile.isEmpty()) { 0054 parser.showHelp(); 0055 return 0; 0056 } 0057 QString logFile; 0058 QString templateFile; 0059 if (parser.isSet(templateOption)) { 0060 templateFile = parser.value(templateOption); 0061 qCDebug(PIMDATAEXPORTERCONSOLE_LOG) << "Template file " << templateFile; 0062 } 0063 if (parser.isSet(logOption)) { 0064 logFile = parser.value(logOption); 0065 qCDebug(PIMDATAEXPORTERCONSOLE_LOG) << "Log file " << logFile; 0066 } 0067 0068 auto console = new PimDataExporterConsole; 0069 if (!importFile.isEmpty()) { 0070 console->setMode(PimDataExporterConsole::Import); 0071 qCDebug(PIMDATAEXPORTERCONSOLE_LOG) << "Import Mode" << importFile; 0072 console->setImportExportFileName(importFile); 0073 } else if (!exportFile.isEmpty()) { 0074 console->setMode(PimDataExporterConsole::Export); 0075 qCDebug(PIMDATAEXPORTERCONSOLE_LOG) << "Export Mode" << exportFile; 0076 console->setImportExportFileName(exportFile); 0077 } 0078 if (!logFile.isEmpty()) { 0079 console->setLogFileName(logFile); 0080 } 0081 if (!templateFile.isEmpty()) { 0082 console->setTemplateFileName(templateFile); 0083 } 0084 QObject::connect(console, &PimDataExporterConsole::finished, &app, &QCoreApplication::quit); 0085 QTimer::singleShot(0, console, &PimDataExporterConsole::start); 0086 0087 return app.exec(); 0088 }