Merge pull request #3401 from BaronGreenback/Plugins

Fix for windows plug-in upgrades issue: #1623
This commit is contained in:
Joshua M. Boniface
2020-09-16 17:22:58 -04:00
committed by GitHub
3 changed files with 194 additions and 9 deletions

View File

@@ -15,12 +15,14 @@ using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Net;
using MediaBrowser.Common.Plugins;
using MediaBrowser.Common.Updates;
using MediaBrowser.Common.System;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net;
using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.Updates;
using Microsoft.Extensions.Logging;
using MediaBrowser.Model.System;
namespace Emby.Server.Implementations.Updates
{
@@ -377,11 +379,20 @@ namespace Emby.Server.Implementations.Updates
throw new InvalidDataException("The checksum of the received data doesn't match.");
}
// Version folder as they cannot be overwritten in Windows.
targetDir += "_" + package.Version;
if (Directory.Exists(targetDir))
{
Directory.Delete(targetDir, true);
try
{
Directory.Delete(targetDir, true);
}
catch
{
// Ignore any exceptions.
}
}
stream.Position = 0;
_zipClient.ExtractAllFromZip(stream, targetDir, true);
@@ -423,15 +434,22 @@ namespace Emby.Server.Implementations.Updates
path = file;
}
if (isDirectory)
try
{
_logger.LogInformation("Deleting plugin directory {0}", path);
Directory.Delete(path, true);
if (isDirectory)
{
_logger.LogInformation("Deleting plugin directory {0}", path);
Directory.Delete(path, true);
}
else
{
_logger.LogInformation("Deleting plugin file {0}", path);
_fileSystem.DeleteFile(path);
}
}
else
catch
{
_logger.LogInformation("Deleting plugin file {0}", path);
_fileSystem.DeleteFile(path);
// Ignore file errors.
}
var list = _config.Configuration.UninstalledPlugins.ToList();