diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-08-25 17:30:35 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-08-25 17:30:35 -0400 |
| commit | 86bc77fd6aa9f366e29cd789de112e4f1f6e7fd9 (patch) | |
| tree | 8d71e9b2c44d35e65a15624ddb1a27e1d64fcac4 /MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs | |
| parent | 2b61894e3ce1c0ec6d188a6be550cf22c2f84fa9 (diff) | |
fix update level migration
Diffstat (limited to 'MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs')
| -rw-r--r-- | MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs b/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs index fa354065c..948fe114a 100644 --- a/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs +++ b/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs @@ -41,16 +41,7 @@ namespace MediaBrowser.Server.Startup.Common.Migrations { var updateLevel = _config.Configuration.SystemUpdateLevel; - // Go down a level - if (updateLevel == PackageVersionClass.Release) - { - updateLevel = PackageVersionClass.Beta; - } - else if (updateLevel == PackageVersionClass.Beta) - { - updateLevel = PackageVersionClass.Dev; - } - else if (updateLevel == PackageVersionClass.Dev) + if (updateLevel == PackageVersionClass.Dev) { // It's already dev, there's nothing to check return; @@ -66,32 +57,42 @@ namespace MediaBrowser.Server.Startup.Common.Migrations private async Task CheckVersion(Version currentVersion, PackageVersionClass updateLevel, CancellationToken cancellationToken) { - var result = await new GithubUpdater(_httpClient, _jsonSerializer, TimeSpan.FromMinutes(5)) - .CheckForUpdateResult("MediaBrowser", "Emby", currentVersion, PackageVersionClass.Beta, _releaseAssetFilename, "MBServer", "Mbserver.zip", - cancellationToken).ConfigureAwait(false); + var releases = await new GithubUpdater(_httpClient, _jsonSerializer, TimeSpan.FromMinutes(5)) + .GetLatestReleases("MediaBrowser", "Emby", _releaseAssetFilename, cancellationToken).ConfigureAwait(false); - if (result != null && result.IsUpdateAvailable) - { - _config.Configuration.SystemUpdateLevel = updateLevel; - _config.SaveConfiguration(); - return; - } + var newUpdateLevel = updateLevel; - // Go down a level - if (updateLevel == PackageVersionClass.Release) + if (releases.Count >= 2) { - updateLevel = PackageVersionClass.Beta; + var beta = releases[1]; + Version version; + if (Version.TryParse(beta.tag_name, out version)) + { + if (currentVersion >= version) + { + newUpdateLevel = PackageVersionClass.Beta; + } + } } - else if (updateLevel == PackageVersionClass.Beta) + + if (releases.Count >= 3) { - updateLevel = PackageVersionClass.Dev; + var dev = releases[2]; + Version version; + if (Version.TryParse(dev.tag_name, out version)) + { + if (currentVersion >= version) + { + newUpdateLevel = PackageVersionClass.Dev; + } + } } - else + + if (newUpdateLevel != updateLevel) { - return; + _config.Configuration.SystemUpdateLevel = newUpdateLevel; + _config.SaveConfiguration(); } - - await CheckVersion(currentVersion, updateLevel, cancellationToken).ConfigureAwait(false); } } } |
