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 }