Browse Source

Merge pull request #869 from cvium/only_zips

Remove DLL support and require all packages/plugins to be zip archives
Joshua M. Boniface 6 năm trước cách đây
mục cha
commit
0ff38b6012
1 tập tin đã thay đổi với 10 bổ sung20 xóa
  1. 10 20
      Emby.Server.Implementations/Updates/InstallationManager.cs

+ 10 - 20
Emby.Server.Implementations/Updates/InstallationManager.cs

@@ -529,20 +529,18 @@ namespace Emby.Server.Implementations.Updates
 
         private async Task PerformPackageInstallation(IProgress<double> progress, string target, PackageVersionInfo package, CancellationToken cancellationToken)
         {
-            // Target based on if it is an archive or single assembly
             var extension = Path.GetExtension(package.targetFilename);
             var isArchive = string.Equals(extension, ".zip", StringComparison.OrdinalIgnoreCase);
 
+            if (!isArchive)
+            {
+                _logger.LogError("Only zip packages are supported. {Filename} is not a zip archive.", package.targetFilename);
+                return;
+            }
+
             if (target == null)
             {
-                if (isArchive)
-                {
-                    target = Path.Combine(_appPaths.PluginsPath, Path.GetFileNameWithoutExtension(package.targetFilename));
-                }
-                else
-                {
-                    target = Path.Combine(_appPaths.PluginsPath, package.targetFilename);
-                }
+                target = Path.Combine(_appPaths.PluginsPath, Path.GetFileNameWithoutExtension(package.targetFilename));
             }
 
             // Download to temporary file so that, if interrupted, it won't destroy the existing installation
@@ -561,22 +559,14 @@ namespace Emby.Server.Implementations.Updates
             // Success - move it to the real target
             try
             {
-                if (isArchive)
-                {
-                    using (var stream = File.OpenRead(tempFile))
-                    {
-                        _zipClient.ExtractAllFromZip(stream, target, true);
-                    }
-                }
-                else
+                using (var stream = File.OpenRead(tempFile))
                 {
-                    Directory.CreateDirectory(Path.GetDirectoryName(target));
-                    File.Copy(tempFile, target, true);
+                    _zipClient.ExtractAllFromZip(stream, target, true);
                 }
             }
             catch (IOException ex)
             {
-                _logger.LogError(ex, "Error attempting to move file from {TempFile} to {TargetFile}", tempFile, target);
+                _logger.LogError(ex, "Error attempting to extract {TempFile} to {TargetFile}", tempFile, target);
                 throw;
             }