don't list repositories

This commit is contained in:
Martchus 2015-12-13 21:12:44 +01:00
parent 2aed20cdb5
commit a5d8dd5bd7
2 changed files with 17 additions and 22 deletions

View File

@ -36,9 +36,8 @@ MingwBundle::MingwBundle(Manager &manager, const ApplicationUtilities::StringVec
// add mingw-w64 packages
for(const auto &pkgName : packages) {
if(auto *pkg = manager.packageProviding(Dependency(QString::fromLocal8Bit(ConversionUtilities::startsWith(pkgName, prefix) ? pkgName.data() : (prefix + pkgName).data())))) {
decltype(m_packages)::value_type entry(pkg->repository(), pkg);
if(find(m_packages.cbegin(), m_packages.cend(), entry) == m_packages.cend()) {
m_packages.emplace_back(entry);
if(find(m_packages.cbegin(), m_packages.cend(), pkg) == m_packages.cend()) {
m_packages.emplace_back(pkg);
addDependencies(pkg);
}
} else {
@ -49,9 +48,8 @@ MingwBundle::MingwBundle(Manager &manager, const ApplicationUtilities::StringVec
// add additional icon packages
for(const auto &pkgName : iconPackages) {
if(auto *pkg = manager.packageProviding(Dependency(QString::fromLocal8Bit(pkgName.data())))) {
decltype(m_packages)::value_type entry(pkg->repository(), pkg);
if(find(m_packages.cbegin(), m_packages.cend(), entry) == m_packages.cend()) {
m_packages.emplace_back(entry);
if(find(m_packages.cbegin(), m_packages.cend(), pkg) == m_packages.cend()) {
m_packages.emplace_back(pkg);
}
} else {
missing.push_back(' ');
@ -62,8 +60,8 @@ MingwBundle::MingwBundle(Manager &manager, const ApplicationUtilities::StringVec
throw runtime_error("The following packages can not be found:" + missing);
} else {
cerr << shchar << "Adding the following packages:";
for(const auto &pkg : m_packages) {
cerr << shchar << ' ' << pkg.second->name().toLocal8Bit().data();
for(const auto *pkg : m_packages) {
cerr << shchar << ' ' << pkg->name().toLocal8Bit().data();
}
cerr << shchar << endl;
}
@ -75,9 +73,8 @@ void MingwBundle::addDependencies(const Package *pkg)
for(const auto &dep : pkg->dependencies()) {
if(dep.name.startsWith(QLatin1String("mingw-w64-"), Qt::CaseInsensitive)) {
if(auto *pkg = m_manager.packageProviding(dep)) {
decltype(m_packages)::value_type entry(pkg->repository(), pkg);
if(find(m_packages.cbegin(), m_packages.cend(), entry) == m_packages.cend()) {
m_packages.emplace_back(entry);
if(find(m_packages.cbegin(), m_packages.cend(), pkg) == m_packages.cend()) {
m_packages.emplace_back(pkg);
addDependencies(pkg);
}
} else {
@ -379,21 +376,21 @@ void MingwBundle::createBundle(const string &targetDir, const string &targetName
cerr << shchar << "Gathering relevant files ..." << endl;
// get package files
list<PkgFileInfo> pkgFiles;
for(const auto &entry : m_packages) {
for(const auto *pkg : m_packages) {
QString pkgFile;
if(!entry.first->packagesDirectory().isEmpty()) {
pkgFile = entry.first->packagesDirectory() % QChar('/') % entry.second->fileName();
if(!pkg->repository()->packagesDirectory().isEmpty()) {
pkgFile = pkg->repository()->packagesDirectory() % QChar('/') % pkg->fileName();
}
if(pkgFile.isEmpty() || !QFile::exists(pkgFile)) {
if(!m_manager.pacmanCacheDir().isEmpty()) {
pkgFile = m_manager.pacmanCacheDir() % QChar('/') % entry.second->fileName();
pkgFile = m_manager.pacmanCacheDir() % QChar('/') % pkg->fileName();
}
if(pkgFile.isEmpty() || !QFile::exists(pkgFile)) {
throw runtime_error("The package file " + string(entry.second->fileName().toLocal8Bit().data()) + " can't be found.");
throw runtime_error("The package file " + string(pkg->fileName().toLocal8Bit().data()) + " can't be found.");
// TODO: download package from mirror
}
}
pkgFiles.emplace_back(entry.second->name().startsWith(QLatin1String("mingw-w64-")) ? entry.second->name().mid(10) : entry.second->name(), pkgFile);
pkgFiles.emplace_back(pkg->name().startsWith(QLatin1String("mingw-w64-")) ? pkg->name().mid(10) : pkg->name(), pkgFile);
}
for(const auto &pkgFileStdStr : m_extraPackages) {
QString pkgFile = QString::fromLocal8Bit(pkgFileStdStr.data());
@ -419,8 +416,8 @@ void MingwBundle::createBundle(const string &targetDir, const string &targetName
}
// make a list with package info to be included in the target archive
QJsonArray pkgArray;
for(const auto &entry : m_packages) {
pkgArray << entry.second->basicInfo(true);
for(const auto *pkg : m_packages) {
pkgArray << pkg->basicInfo(true);
}
QJsonDocument pkgList;
pkgList.setArray(pkgArray);

View File

@ -6,8 +6,6 @@
#include <c++utilities/application/argumentparser.h>
#include <QList>
namespace RepoIndex {
class Manager;
@ -23,7 +21,7 @@ private:
void addDependencies(const Package *pkg);
Manager &m_manager;
std::list<std::pair<const Repository *, const Package *> > m_packages;
std::list<const Package *> m_packages;
const ApplicationUtilities::StringVector &m_extraPackages;
};