diff options
| author | Joshua M. Boniface <joshua@boniface.me> | 2024-03-03 16:58:44 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-03 16:58:44 -0500 |
| commit | 83d2bc3f9f13c62f6d3ef16c4fe75f0f5a18110d (patch) | |
| tree | b5d6b867432b51785dee1c57fc3b8291c60552c4 /Jellyfin.Server/Migrations/Routines/UpdateDefaultPluginRepository.cs | |
| parent | 6e5ec99ea10557c141ed8d755e672cef628d35f0 (diff) | |
| parent | afacd8d025ba6a166981ced1c73d968400b0f373 (diff) | |
Merge pull request #11100 from crobibero/plugin-repo-10.9
Add migration for new plugin repo
Diffstat (limited to 'Jellyfin.Server/Migrations/Routines/UpdateDefaultPluginRepository.cs')
| -rw-r--r-- | Jellyfin.Server/Migrations/Routines/UpdateDefaultPluginRepository.cs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Jellyfin.Server/Migrations/Routines/UpdateDefaultPluginRepository.cs b/Jellyfin.Server/Migrations/Routines/UpdateDefaultPluginRepository.cs new file mode 100644 index 000000000..7e8c8ac87 --- /dev/null +++ b/Jellyfin.Server/Migrations/Routines/UpdateDefaultPluginRepository.cs @@ -0,0 +1,52 @@ +using System; +using MediaBrowser.Controller.Configuration; + +namespace Jellyfin.Server.Migrations.Routines; + +/// <summary> +/// Migration to update the default Jellyfin plugin repository. +/// </summary> +public class UpdateDefaultPluginRepository : IMigrationRoutine +{ + private const string NewRepositoryUrl = "https://repo.jellyfin.org/files/plugin/manifest.json"; + private const string OldRepositoryUrl = "https://repo.jellyfin.org/releases/plugin/manifest-stable.json"; + + private readonly IServerConfigurationManager _serverConfigurationManager; + + /// <summary> + /// Initializes a new instance of the <see cref="UpdateDefaultPluginRepository"/> class. + /// </summary> + /// <param name="serverConfigurationManager">Instance of the <see cref="IServerConfigurationManager"/> interface.</param> + public UpdateDefaultPluginRepository(IServerConfigurationManager serverConfigurationManager) + { + _serverConfigurationManager = serverConfigurationManager; + } + + /// <inheritdoc /> + public Guid Id => new("852816E0-2712-49A9-9240-C6FC5FCAD1A8"); + + /// <inheritdoc /> + public string Name => "UpdateDefaultPluginRepository10.9"; + + /// <inheritdoc /> + public bool PerformOnNewInstall => true; + + /// <inheritdoc /> + public void Perform() + { + var updated = false; + foreach (var repo in _serverConfigurationManager.Configuration.PluginRepositories) + { + if (string.Equals(repo.Url, OldRepositoryUrl, StringComparison.OrdinalIgnoreCase)) + { + repo.Url = NewRepositoryUrl; + updated = true; + } + } + + if (updated) + { + _serverConfigurationManager.SaveConfiguration(); + } + } +} |
