File indexing completed on 2024-04-14 14:16:41

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2011 Dennis Nienhüser <nienhueser@kde.org>
0004 //
0005 
0006 #include "jobmanager.h"
0007 #include "logger.h"
0008 #include "upload.h"
0009 
0010 #include <QCoreApplication>
0011 #include <QDebug>
0012 
0013 void usage(const QString &app)
0014 {
0015     qDebug() << "Usage: " << app << "[options] regions.xml log.sqlite [resume-id]";
0016     qDebug() << "\nOptions:";
0017     qDebug() << "\t-h, --help................. Show this help";
0018     qDebug() << "\t-cd, --cache-data.......... Do not delete downloaded .osm.pbf and converted .tar.gz files after a successful conversion and upload";
0019     qDebug() << "\t-nu, --no-uploads.......... Do not upload converted files to files.kde.org";
0020 }
0021 
0022 int main(int argc, char *argv[])
0023 {
0024     QCoreApplication app(argc, argv);
0025 
0026     QStringList arguments;
0027     bool cacheData(false);
0028     bool uploadFiles(true);
0029     for (int i=1; i<argc; ++i) {
0030         QString const arg = argv[i];
0031         if (arg == QLatin1String("-h") || arg == QLatin1String("--help")) {
0032             usage(argv[0]);
0033             return 0;
0034         } else if (arg == QLatin1String("-cd") || arg == QLatin1String("--cache-data")) {
0035             cacheData = true;
0036         } else if (arg == QLatin1String("-nu") || arg == QLatin1String("--no-uploads")) {
0037             uploadFiles = false;
0038         } else {
0039             arguments << arg;
0040         }
0041     }
0042 
0043     if (arguments.size() < 2) {
0044         usage(argv[0]);
0045         return 1;
0046     }
0047 
0048     Logger::instance().setFilename(arguments.at(1));
0049 
0050     QFileInfo tempDir = QFileInfo(QDir::tempPath(), "osm-sisyphus");
0051     JobParameters parameters;
0052     parameters.setBase(QDir(tempDir.absoluteFilePath()));
0053     parameters.setCacheData(cacheData);
0054 
0055     Upload::instance().setJobParameters(parameters);
0056     Upload::instance().setUploadFiles(uploadFiles);
0057 
0058     JobManager manager;
0059     manager.setRegionsFile(arguments.at(0));
0060     manager.setJobParameters(parameters);
0061     if (arguments.size() == 3) {
0062         manager.setResumeId(arguments.at(2));
0063     }
0064     manager.run();
0065     
0066     return app.exec();
0067 }