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/archivegen/archive.cpp | 2 +- tools/common/repositorygen.cpp | 13 ++++--------- tools/common/repositorygen.h | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) (limited to 'tools') diff --git a/tools/archivegen/archive.cpp b/tools/archivegen/archive.cpp index 2d1257ae7..3b8db3e79 100644 --- a/tools/archivegen/archive.cpp +++ b/tools/archivegen/archive.cpp @@ -64,7 +64,7 @@ int main(int argc, char *argv[]) QInstaller::init(); QInstaller::setVerbose(true); const QStringList sourceDirectories = app.arguments().mid(2); - QInstallerTools::compressDirectory(sourceDirectories, app.arguments().at(1)); + QInstallerTools::compressPaths(sourceDirectories, app.arguments().at(1)); return EXIT_SUCCESS; } catch (const Lib7z::SevenZipException &e) { std::cerr << e.message() << std::endl; 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