diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2019-03-06 18:46:15 -0600 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2019-03-06 18:46:15 -0600 |
| commit | 09a68079bb9ac083bd060b1e75bf329917a7d888 (patch) | |
| tree | 80d315a93878e84cf3b78c4ed9c4028600377906 /src/selfupdater.cpp | |
| parent | 0174423841ece269340c0416b9d2996d49a571de (diff) | |
Assume an empty release list from GitHub means some kind of error occurred
Diffstat (limited to 'src/selfupdater.cpp')
| -rw-r--r-- | src/selfupdater.cpp | 59 |
1 files changed, 32 insertions, 27 deletions
diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index 37700e08..4c0f9a8d 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -126,37 +126,42 @@ void SelfUpdater::testForUpdate() // TODO: if prereleases are disabled we could just request the latest release
// directly
try {
- m_GitHub.releases(GitHub::Repository("Modorganizer2", "modorganizer"),
- [this](const QJsonArray &releases) {
- QJsonObject newest;
- for (const QJsonValue &releaseVal : releases) {
- QJsonObject release = releaseVal.toObject();
- if (!release["draft"].toBool() && (Settings::instance().usePrereleases()
- || !release["prerelease"].toBool())) {
- if (newest.empty() || (VersionInfo(release["tag_name"].toString())
- > VersionInfo(newest["tag_name"].toString()))) {
- newest = release;
+ m_GitHub.releases(GitHub::Repository("Modorganizer2", "modorganizer"),
+ [this](const QJsonArray &releases) {
+ if (releases.isEmpty()) {
+ qDebug("Unable to connect to github.com to check version");
+ return;
+ }
+
+ QJsonObject newest;
+ for (const QJsonValue &releaseVal : releases) {
+ QJsonObject release = releaseVal.toObject();
+ if (!release["draft"].toBool() && (Settings::instance().usePrereleases()
+ || !release["prerelease"].toBool())) {
+ if (newest.empty() || (VersionInfo(release["tag_name"].toString())
+ > VersionInfo(newest["tag_name"].toString()))) {
+ newest = release;
+ }
}
}
- }
- if (!newest.empty()) {
- VersionInfo newestVer(newest["tag_name"].toString());
- if (newestVer > this->m_MOVersion) {
- m_UpdateCandidate = newest;
- qDebug("update available: %s -> %s",
- qUtf8Printable(this->m_MOVersion.displayString(3)),
- qUtf8Printable(newestVer.displayString(3)));
- emit updateAvailable();
- } else if (newestVer < this->m_MOVersion) {
- // this could happen if the user switches from using prereleases to
- // stable builds. Should we downgrade?
- qDebug("This version is newer than the latest released one: %s -> %s",
- qUtf8Printable(this->m_MOVersion.displayString(3)),
- qUtf8Printable(newestVer.displayString(3)));
+ if (!newest.empty()) {
+ VersionInfo newestVer(newest["tag_name"].toString());
+ if (newestVer > this->m_MOVersion) {
+ m_UpdateCandidate = newest;
+ qDebug("update available: %s -> %s",
+ qUtf8Printable(this->m_MOVersion.displayString(3)),
+ qUtf8Printable(newestVer.displayString(3)));
+ emit updateAvailable();
+ } else if (newestVer < this->m_MOVersion) {
+ // this could happen if the user switches from using prereleases to
+ // stable builds. Should we downgrade?
+ qDebug("This version is newer than the latest released one: %s -> %s",
+ qUtf8Printable(this->m_MOVersion.displayString(3)),
+ qUtf8Printable(newestVer.displayString(3)));
+ }
}
- }
- });
+ });
}
//Catch all is bad by design, should be improved
catch (...) {
|
