Files
PulsarK-main/Pulsar.Server/Utilities/PluginPackageImporter.cs
T
i2p 773d05f8f1
Pulsar .NET 9.0 Windows Release / build (push) Waiting to run
Mirror to Codeberg and Gitea / mirror (push) Waiting to run
initial commit
2026-08-27 10:57:58 -06:00

33 lines
1.1 KiB
C#

using System;
using System.IO;
using System.IO.Compression;
using System.Linq;
namespace Pulsar.Server.Utilities
{
internal static class PluginPackageImporter
{
public static void Import(string packagePath, string pluginsDir)
{
if (string.IsNullOrWhiteSpace(packagePath) || !File.Exists(packagePath))
throw new FileNotFoundException("Package not found", packagePath);
Directory.CreateDirectory(pluginsDir);
using (var fs = File.OpenRead(packagePath))
using (var zip = new ZipArchive(fs, ZipArchiveMode.Read))
{
var dllEntries = zip.Entries.Where(e => e.FullName.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)).ToList();
foreach (var entry in dllEntries)
{
var outPath = Path.Combine(pluginsDir, Path.GetFileName(entry.FullName));
using (var inStream = entry.Open())
using (var outStream = File.Create(outPath))
{
inStream.CopyTo(outStream);
}
}
}
}
}
}