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 }