mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 01:24:44 +01:00
Copy previous plugin settings if they don't exist.
This commit is contained in:
@@ -274,6 +274,32 @@ namespace Emby.Server.Implementations
|
||||
}
|
||||
}
|
||||
|
||||
private void CopyFiles(string source, string destination, bool overwrite, string searchPattern)
|
||||
{
|
||||
FileInfo[] files;
|
||||
try
|
||||
{
|
||||
files = new DirectoryInfo(source).GetFiles(searchPattern);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogDebug(ex, "Error retrieving file list.");
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (FileInfo file in files)
|
||||
{
|
||||
try
|
||||
{
|
||||
file.CopyTo(Path.Combine(destination, file.Name), overwrite);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogDebug(ex, "Error copying file {Name}", file.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Changes the status of the other versions of the plugin to "Superceded".
|
||||
/// </summary>
|
||||
@@ -295,6 +321,9 @@ namespace Emby.Server.Implementations
|
||||
return;
|
||||
}
|
||||
|
||||
// migrate settings across from the last active version if they don't exist.
|
||||
CopyFiles(predecessor.Path, plugin.Path, false, "*.xml");
|
||||
|
||||
if (predecessor.Manifest.Status == PluginStatus.Active && !ChangePluginState(predecessor, PluginStatus.Superceded))
|
||||
{
|
||||
_logger.LogError("Unable to disable version {Version} of {Name}", predecessor.Version, predecessor.Name);
|
||||
|
||||
Reference in New Issue
Block a user