diff options
Diffstat (limited to 'tools/repogen/repogen.cpp')
-rw-r--r-- | tools/repogen/repogen.cpp | 42 |
1 files changed, 18 insertions, 24 deletions
diff --git a/tools/repogen/repogen.cpp b/tools/repogen/repogen.cpp index 1380e4ebf..dfa8852f3 100644 --- a/tools/repogen/repogen.cpp +++ b/tools/repogen/repogen.cpp @@ -80,7 +80,7 @@ static void printUsage() std::cout << std::endl; std::cout << "Example:" << std::endl; std::cout << " " << appName << " -p ../examples/packages -u " - "http://www.some-server.com:8080 repository/" << std::endl; + "http://www.example.com:8080 repository/" << std::endl; } static int printErrorAndUsageAndExit(const QString &err) @@ -90,16 +90,10 @@ static int printErrorAndUsageAndExit(const QString &err) return 1; } -static QString makeAbsolute(const QString &path) -{ - QFileInfo fi(path); - if (fi.isAbsolute()) - return path; - return QDir::current().absoluteFilePath(path); -} - int main(int argc, char** argv) { + QString tmpMetaDir; + int exitCode = EXIT_FAILURE; try { QCoreApplication app(argc, argv); @@ -188,7 +182,7 @@ int main(int argc, char** argv) "exclusive!")); } - const QString repositoryDir = makeAbsolute(args.first()); + const QString repositoryDir = QInstallerTools::makePathAbsolute(args.first()); if (remove) QInstaller::removeDirectory(repositoryDir); @@ -199,7 +193,7 @@ int main(int argc, char** argv) QInstallerTools::PackageInfoVector packages = QInstallerTools::createListOfPackages(packagesDir, filteredPackages, filterType); - QHash<QString, QString> pathToVersionMapping = buildPathToVersionMapping(packages); + QHash<QString, QString> pathToVersionMapping = QInstallerTools::buildPathToVersionMapping(packages); foreach (const QInstallerTools::PackageInfo &package, packages) { const QFileInfo fi(repositoryDir, package.name); @@ -207,27 +201,27 @@ int main(int argc, char** argv) removeDirectory(fi.absoluteFilePath()); } - copyComponentData(packagesDir, repositoryDir, packages); - - TempDirDeleter tmpDeleter; - const QString metaTmp = createTemporaryDirectory(); - tmpDeleter.add(metaTmp); - - generateMetaDataDirectory(metaTmp, repositoryDir, packages, QLatin1String("{AnyApplication}"), + tmpMetaDir = QInstaller::createTemporaryDirectory(); + QInstallerTools::copyComponentData(packagesDir, repositoryDir, &packages); + QInstallerTools::copyMetaData(tmpMetaDir, repositoryDir, packages, QLatin1String("{AnyApplication}"), QLatin1String(QUOTE(IFW_REPOSITORY_FORMAT_VERSION)), redirectUpdateUrl); - QInstallerTools::compressMetaDirectories(metaTmp, metaTmp, pathToVersionMapping); + QInstallerTools::compressMetaDirectories(tmpMetaDir, tmpMetaDir, pathToVersionMapping); QDirIterator it(repositoryDir, QStringList(QLatin1String("Updates*.xml")), QDir::Files | QDir::CaseSensitive); while (it.hasNext()) { it.next(); QFile::remove(it.fileInfo().absoluteFilePath()); } - moveDirectoryContents(metaTmp, repositoryDir); - return 0; + QInstaller::moveDirectoryContents(tmpMetaDir, repositoryDir); + exitCode = EXIT_SUCCESS; } catch (const Lib7z::SevenZipException &e) { - std::cerr << "caught 7zip exception: " << e.message() << std::endl; + std::cerr << "Caught 7zip exception: " << e.message() << std::endl; } catch (const QInstaller::Error &e) { - std::cerr << "caught exception: " << e.message() << std::endl; + std::cerr << "Caught exception: " << e.message() << std::endl; + } catch (...) { + std::cerr << "Unknown exception caught" << std::endl; } - return 1; + + QInstaller::removeDirectory(tmpMetaDir, true); + return exitCode; } |