From dc3f0a459d15aa04f9713dc9c594fbb79215818d Mon Sep 17 00:00:00 2001 From: Niels Weber Date: Thu, 20 Jun 2013 10:58:53 +0200 Subject: Lists packages not found that were given explicitly. When the user calls repogen or binarycreator using the include or exclude parameter, those packages that were given but could not be found in the packages directory are now listed in a warning. Task-number: QTIFW-233 Change-Id: Iaadd0a14d2c6d834daa6dbe956118d674e048fac Reviewed-by: Karsten Heimrich --- tools/common/repositorygen.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'tools/common/repositorygen.cpp') diff --git a/tools/common/repositorygen.cpp b/tools/common/repositorygen.cpp index 60a38377c..bae26d0f3 100644 --- a/tools/common/repositorygen.cpp +++ b/tools/common/repositorygen.cpp @@ -359,7 +359,7 @@ void QInstallerTools::copyMetaData(const QString &_targetDir, const QString &met } PackageInfoVector QInstallerTools::createListOfPackages(const QString &packagesDirectory, - const QStringList &filteredPackages, FilterType filterType) + QStringList *packagesToFilter, FilterType filterType) { qDebug() << "\nCollecting information about available packages..."; @@ -369,11 +369,16 @@ PackageInfoVector QInstallerTools::createListOfPackages(const QString &packagesD const QFileInfoList entries = QDir(packagesDirectory).entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); for (QFileInfoList::const_iterator it = entries.begin(); it != entries.end(); ++it) { if (filterType == Exclude) { - if (filteredPackages.contains(it->fileName())) + // Check for current file in exclude list, if found, skip it and remove it from exclude list + if (packagesToFilter->contains(it->fileName())) { + packagesToFilter->removeAll(it->fileName()); continue; + } } else { - if (!filteredPackages.contains(it->fileName())) + // Check for current file in include list, if not found, skip it; if found, remove it from include list + if (!packagesToFilter->contains(it->fileName())) continue; + packagesToFilter->removeAll(it->fileName()); } qDebug() << QString::fromLatin1("found subdirectory '%1'").arg(it->fileName()); // because the filter is QDir::Dirs - filename means the name of the subdirectory @@ -440,6 +445,10 @@ PackageInfoVector QInstallerTools::createListOfPackages(const QString &packagesD qDebug() << QString::fromLatin1("- it provides the package %1 - %2").arg(info.name, info.version); } + if (!packagesToFilter->isEmpty()) { + qWarning() << "The following explicitly given packages could not be found\n in package directory:" << *packagesToFilter; + } + if (dict.isEmpty()) qDebug() << "No available packages found at the specified location."; -- cgit v1.2.3