From 2957e28288a472d2e9507762e85939c0a0de4b4d Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Mon, 14 May 2012 15:32:58 +0200 Subject: remove the limitation that archivegen could handle directories only Change-Id: I5e7b6740d6df1b858cee091a1174e8fd64e477a7 Reviewed-by: Niels Weber --- tools/common/repositorygen.cpp | 13 ++++--------- tools/common/repositorygen.h | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) (limited to 'tools/common') diff --git a/tools/common/repositorygen.cpp b/tools/common/repositorygen.cpp index 8534c1c20..d72ea2548 100644 --- a/tools/common/repositorygen.cpp +++ b/tools/common/repositorygen.cpp @@ -65,13 +65,8 @@ void QInstallerTools::printRepositoryGenOptions() std::cout << " --ignore-invalid-packages Ignore all invalid packages instead of aborting." << std::endl; } -void QInstallerTools::compressDirectory(const QStringList &paths, const QString &archivePath) +void QInstallerTools::compressPaths(const QStringList &paths, const QString &archivePath) { - foreach (const QString &path, paths) { - if (!QFileInfo(path).exists()) - throw QInstaller::Error(QObject::tr("Folder %1 does not exist.").arg(path)); - } - QFile archive(archivePath); QInstaller::openForWrite(&archive, archivePath); Lib7z::createArchive(&archive, paths); @@ -87,7 +82,7 @@ void QInstallerTools::compressMetaDirectories(const QString &repoDir) const QString absPath = sd.absolutePath(); const QString fn = QLatin1String("meta.7z"); const QString tmpTarget = repoDir + QLatin1String("/") +fn; - compressDirectory(QStringList() << absPath, tmpTarget); + compressPaths(QStringList() << absPath, tmpTarget); QFile tmp(tmpTarget); const QString finalTarget = absPath + QLatin1String("/") + fn; if (!tmp.rename(finalTarget)) { @@ -545,7 +540,7 @@ void QInstallerTools::compressMetaDirectories(const QString &repoDir, const QStr const QString absPath = sd.absolutePath(); const QString fn = QLatin1String(versionPrefix.toLatin1() + "meta.7z"); const QString tmpTarget = repoDir + QLatin1String("/") +fn; - compressDirectory(QStringList() << absPath, tmpTarget); + compressPaths(QStringList() << absPath, tmpTarget); // remove the files that got compressed QInstaller::removeFiles(absPath, true); @@ -595,7 +590,7 @@ void QInstallerTools::copyComponentData(const QString &packageDir, const QString } else if (fileInfo.isDir()) { qDebug() << "Compressing data directory" << entry; target = QString::fromLatin1("%1/%2/%4%3.7z").arg(repoDir, name, entry, info.version); - QInstallerTools::compressDirectory(QStringList() << dataDir.absoluteFilePath(entry), target); + QInstallerTools::compressPaths(QStringList() << dataDir.absoluteFilePath(entry), target); } else { continue; } diff --git a/tools/common/repositorygen.h b/tools/common/repositorygen.h index 7cb7a07a0..0e73d8a00 100644 --- a/tools/common/repositorygen.h +++ b/tools/common/repositorygen.h @@ -59,7 +59,7 @@ enum FilterType { QHash buildPathToVersionMapping(const PackageInfoVector &info); void compressMetaDirectories(const QString &repoDir); -void compressDirectory(const QStringList &paths, const QString &archivePath); +void compressPaths(const QStringList &paths, const QString &archivePath); void compressMetaDirectories(const QString &repoDir, const QString &baseDir, const QHash &versionMapping); -- cgit v1.2.3