ssu
Loading...
Searching...
No Matches
ssuslipstream.cpp
1
20
21#include "ssuslipstream.h"
22
23#include <QCoreApplication>
24#include <QTimer>
25#include <QUrl>
26
27#include "libssu/ssu.h"
30
31
33 : QObject()
34{
35}
36
37void SsuSlipstream::run()
38{
39 QTextStream err(stderr, QIODevice::WriteOnly);
40
41 QString partition = QString::fromUtf8(qgetenv("SSU_SLIPSTREAM_PARTITION"));
42
43 if (partition.isEmpty()) {
44 err << "Nothing to do\n";
45 QCoreApplication::exit(1);
46 return;
47 }
48
49 Ssu ssu;
50 // XXX: Do we need ssu.isRegistered() + updateCredentials() here?
51 QPair<QString, QString> credentials = ssu.credentials("store");
52 QString release = ssu.release(false);
53
54 QString release_override = QString::fromUtf8(qgetenv("SSU_SLIPSTREAM_RELEASE"));
55 if (!release_override.isEmpty()) {
56 err << QString("Forcing release to: %1\n").arg(release_override);
57 release = release_override;
58 }
59
60 SsuCoreConfig *settings = SsuCoreConfig::instance();
61 const QString KEY("slipstream-url");
62 QString ssuCredentialsUrl = settings->value(KEY, ssu.repoUrl(KEY)).toString();
63
64 if (ssuCredentialsUrl.isEmpty()) {
65 err << "URL for slipstream update not set (config key 'slipstream-url')\n";
66 QCoreApplication::exit(1);
67 return;
68 }
69
70 QUrl url(ssuCredentialsUrl);
71 url.setUserName(credentials.first);
72 url.setPassword(credentials.second);
73
74 QTextStream out(stdout, QIODevice::WriteOnly);
75 out << url.toString() << '/' << release << '/' << partition << '\n';
76
77 QTimer::singleShot(0, QCoreApplication::instance(), SLOT(quit()));
78}
QString repoUrl(const QString &repoName, bool rndRepo=false, QHash< QString, QString > repoParameters=QHash< QString, QString >(), QHash< QString, QString > parametersOverride=QHash< QString, QString >())
Definition ssu.cpp:312
QPair< QString, QString > credentials(const QString &scope)
Definition ssu.cpp:95
Q_INVOKABLE QString release(bool rnd=false)
See SsuCoreConfig::release.
Definition ssu.cpp:191