ssu
ssuslipstream.cpp
1 
21 #include "ssuslipstream.h"
22 
23 #include <QCoreApplication>
24 #include <QTimer>
25 #include <QUrl>
26 
27 #include "libssu/ssu.h"
28 #include "libssu/ssudeviceinfo.h"
29 #include "libssu/ssucoreconfig_p.h"
30 
31 
33  : QObject()
34 {
35 }
36 
37 void 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 }
SsuSlipstream::SsuSlipstream
SsuSlipstream()
Definition: ssuslipstream.cpp:32
Ssu
Definition: ssu.h:36
Ssu::credentials
QPair< QString, QString > credentials(const QString &scope)
Definition: ssu.cpp:95
ssu.h
ssucoreconfig_p.h
Ssu::repoUrl
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
SsuCoreConfig
Definition: ssucoreconfig_p.h:27
Ssu::release
Q_INVOKABLE QString release(bool rnd=false)
See SsuCoreConfig::release.
Definition: ssu.cpp:191
ssudeviceinfo.h