File indexing completed on 2024-04-28 11:33:57

0001 /*
0002   This file is part of the kcalcore library.
0003 
0004   SPDX-FileCopyrightText: 2003 Cornelius Schumacher <schumacher@kde.org>
0005 
0006   SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #include "filestorage.h"
0010 #include "icalformat.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     qSetGlobalQHashSeed(0); // Disable QHash randomness
0025     qputenv("TZ", "GMT");
0026     qSetGlobalQHashSeed(0); // Ensure predictable QHash listing order.
0027 
0028     QCommandLineParser parser;
0029     parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("verbose"), QStringLiteral("Verbose output")));
0030     parser.addPositionalArgument(QStringLiteral("source"), QStringLiteral("Source file to copy."));
0031     parser.addPositionalArgument(QStringLiteral("destination"), QStringLiteral("Destination directory."));
0032 
0033     QCoreApplication app(argc, argv);
0034     QCoreApplication::setApplicationName(QStringLiteral("readandwrite"));
0035     QCoreApplication::setApplicationVersion(QStringLiteral("0.1"));
0036     parser.process(app);
0037 
0038     const QStringList parsedArgs = parser.positionalArguments();
0039     if (parsedArgs.count() != 2) {
0040         parser.showHelp();
0041     }
0042 
0043     QString input = parsedArgs[0];
0044     QString output = parsedArgs[1];
0045 
0046     QFileInfo outputFileInfo(output);
0047     output = outputFileInfo.absoluteFilePath();
0048 
0049     qDebug() << "Input file:" << input;
0050     qDebug() << "Output file:" << output;
0051 
0052     if (outputFileInfo.fileName() == QLatin1String("KOrganizer_3.1.ics.ical.out")
0053         || outputFileInfo.fileName() == QLatin1String("KOrganizer_3.2.ics.ical.out")) {
0054         return 0;
0055     }
0056 
0057     MemoryCalendar::Ptr cal(new MemoryCalendar(QTimeZone::utc()));
0058     FileStorage instore(cal, input);
0059 
0060     if (!instore.load()) {
0061         qDebug() << "DAMN";
0062         return 1;
0063     }
0064 
0065     FileStorage outstore(cal, output);
0066     if (!outstore.save()) {
0067         return 1;
0068     }
0069 
0070     return 0;
0071 }