File indexing completed on 2024-04-28 15:18:57

0001 /*
0002   This file is part of the kcalcore library.
0003 
0004   SPDX-FileCopyrightText: 2003 Cornelius Schumacher <schumacher@kde.org>
0005   SPDX-FileCopyrightText: 2005 Reinhold Kainhofer <reinhold@kainhofer.com>
0006 
0007   SPDX-License-Identifier: LGPL-2.0-or-later
0008 */
0009 
0010 #include "filestorage.h"
0011 #include "memorycalendar.h"
0012 #include "vcalformat.h"
0013 
0014 #include <QCommandLineParser>
0015 #include <QCoreApplication>
0016 #include <QDebug>
0017 #include <QFileInfo>
0018 #include <QTimeZone>
0019 
0020 using namespace KCalendarCore;
0021 
0022 int main(int argc, char **argv)
0023 {
0024     QCommandLineParser parser;
0025     parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("verbose"), QStringLiteral("Verbose output")));
0026     parser.addPositionalArgument(QStringLiteral("input"), QStringLiteral("Name of input file"));
0027     parser.addPositionalArgument(QStringLiteral("output"), QStringLiteral("Name of output file"));
0028 
0029     QCoreApplication app(argc, argv);
0030     QCoreApplication::setApplicationName(QStringLiteral("testvcalexport"));
0031     QCoreApplication::setApplicationVersion(QStringLiteral("0.1"));
0032     parser.process(app);
0033 
0034     const QStringList parsedArgs = parser.positionalArguments();
0035 
0036     if (parsedArgs.count() != 2) {
0037         parser.showHelp();
0038     }
0039 
0040     QString input = parsedArgs[0];
0041     QString output = parsedArgs[1];
0042 
0043     QFileInfo outputFileInfo(output);
0044     output = outputFileInfo.absoluteFilePath();
0045 
0046     qDebug() << "Input file:" << input;
0047     qDebug() << "Output file:" << output;
0048 
0049     MemoryCalendar::Ptr cal(new MemoryCalendar(QTimeZone::utc()));
0050     FileStorage instore(cal, input);
0051 
0052     if (!instore.load()) {
0053         return 1;
0054     }
0055 
0056     FileStorage outstore(cal, output, new VCalFormat);
0057     if (!outstore.save()) {
0058         return 1;
0059     }
0060 
0061     return 0;
0062 }