File indexing completed on 2024-04-14 03:50:35

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     qputenv("TZ", "GMT");
0025     QHashSeed::setDeterministicGlobalSeed(); // Disable QHash randomness
0026 
0027     QCommandLineParser parser;
0028     parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("verbose"), QStringLiteral("Verbose output")));
0029     parser.addPositionalArgument(QStringLiteral("source"), QStringLiteral("Source file to copy."));
0030     parser.addPositionalArgument(QStringLiteral("destination"), QStringLiteral("Destination directory."));
0031 
0032     QCoreApplication app(argc, argv);
0033     QCoreApplication::setApplicationName(QStringLiteral("readandwrite"));
0034     QCoreApplication::setApplicationVersion(QStringLiteral("0.1"));
0035     parser.process(app);
0036 
0037     const QStringList parsedArgs = parser.positionalArguments();
0038     if (parsedArgs.count() != 2) {
0039         parser.showHelp();
0040     }
0041 
0042     QString input = parsedArgs[0];
0043     QString output = parsedArgs[1];
0044 
0045     QFileInfo outputFileInfo(output);
0046     output = outputFileInfo.absoluteFilePath();
0047 
0048     qDebug() << "Input file:" << input;
0049     qDebug() << "Output file:" << output;
0050 
0051     if (outputFileInfo.fileName() == QLatin1String("KOrganizer_3.1.ics.ical.out")
0052         || outputFileInfo.fileName() == QLatin1String("KOrganizer_3.2.ics.ical.out")) {
0053         return 0;
0054     }
0055 
0056     MemoryCalendar::Ptr cal(new MemoryCalendar(QTimeZone::utc()));
0057     FileStorage instore(cal, input);
0058 
0059     if (!instore.load()) {
0060         qDebug() << "DAMN";
0061         return 1;
0062     }
0063 
0064     FileStorage outstore(cal, output);
0065     if (!outstore.save()) {
0066         return 1;
0067     }
0068 
0069     return 0;
0070 }