diff options
| author | Cody Robibero <cody@robibe.ro> | 2024-03-03 13:32:21 -0700 |
|---|---|---|
| committer | Cody Robibero <cody@robibe.ro> | 2024-03-03 13:32:21 -0700 |
| commit | afacd8d025ba6a166981ced1c73d968400b0f373 (patch) | |
| tree | f21d1fec59401515643331910a7c6a68b1026017 /Jellyfin.Server/Migrations/Routines/UpdateDefaultPluginRepository.cs | |
| parent | 3bd1a5c5574d2a0c1bc1b8d9384c1c7c900ac206 (diff) | |
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(); + } + } +} |
