Skip to content

Commit

Permalink
Allow parameter override in URL lookup
Browse files Browse the repository at this point in the history
  • Loading branch information
Bernd Wachter committed Mar 28, 2013
1 parent e87a49c commit 6434ff0
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
16 changes: 14 additions & 2 deletions libssu/ssu.cpp
Expand Up @@ -149,7 +149,9 @@ QString Ssu::release(bool rnd){

// RND repos have flavour (devel, testing, release), and release (latest, next)
// Release repos only have release (latest, next, version number)
QString Ssu::repoUrl(QString repoName, bool rndRepo, QHash<QString, QString> repoParameters){
QString Ssu::repoUrl(QString repoName, bool rndRepo,
QHash<QString, QString> repoParameters,
QHash<QString, QString> parametersOverride){
QString r;
QStringList configSections;
SsuVariables var;
Expand Down Expand Up @@ -182,7 +184,10 @@ QString Ssu::repoUrl(QString repoName, bool rndRepo, QHash<QString, QString> rep
if (!repoParameters.contains("arch"))
repoParameters.insert("arch", settings->value("arch").toString());

// todo: allow override of deviceModel for cli url resolving
// Override device model (and therefore all the family, ... stuff)
if (parametersOverride.contains("model"))
deviceInfo.setDeviceModel(parametersOverride.value("model"));

QStringList adaptationRepos = deviceInfo.adaptationRepos();

// read adaptation from settings, in case it can't be determined from
Expand Down Expand Up @@ -245,6 +250,13 @@ QString Ssu::repoUrl(QString repoName, bool rndRepo, QHash<QString, QString> rep
// then overwrite with domain specific things if that block is available
var.resolveSection(repoSettings, domain()+"-domain", &repoParameters);

// override arbitrary variables, mostly useful for generating mic URLs
QHash<QString, QString>::const_iterator i = parametersOverride.constBegin();
while (i != parametersOverride.constEnd()){
repoParameters.insert(i.key(), i.value());
i++;
}

if (settings->contains("repository-urls/" + repoName))
r = settings->value("repository-urls/" + repoName).toString();
else {
Expand Down
4 changes: 3 additions & 1 deletion libssu/ssu.h
Expand Up @@ -84,7 +84,9 @@ class Ssu: public QObject {
* Resolve a repository url
* @return the repository URL on success, an empty string on error
*/
QString repoUrl(QString repoName, bool rndRepo=false, QHash<QString, QString> repoParameters=QHash<QString, QString>());
QString repoUrl(QString repoName, bool rndRepo=false,
QHash<QString, QString> repoParameters=QHash<QString, QString>(),
QHash<QString, QString> parametersOverride=QHash<QString, QString>());
/**
* Set the flavour used when resolving RND repositories
*/
Expand Down

0 comments on commit 6434ff0

Please sign in to comment.