mirror of
https://github.com/MikuLeaks/MikuSB.git
synced 2026-06-04 04:23:57 +00:00
ResourceDownloader
This commit is contained in:
@@ -11,6 +11,8 @@ if (!argsMap.TryGetValue("--package", out var packagePath)
|
||||
}
|
||||
|
||||
argsMap.TryGetValue("--pid", out var pidValue);
|
||||
argsMap.TryGetValue("--resource-package", out var resourcePackagePath);
|
||||
argsMap.TryGetValue("--resource-target", out var resourceTargetDirectory);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -23,6 +25,9 @@ try
|
||||
ZipFile.ExtractToDirectory(packagePath, stagingDirectory, overwriteFiles: true);
|
||||
CopyDirectory(stagingDirectory, targetDirectory);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(resourcePackagePath) && !string.IsNullOrWhiteSpace(resourceTargetDirectory))
|
||||
UpdateResources(resourcePackagePath, resourceTargetDirectory);
|
||||
|
||||
Process.Start(new ProcessStartInfo
|
||||
{
|
||||
FileName = restartExecutable,
|
||||
@@ -88,3 +93,20 @@ static bool ShouldSkip(string relativePath)
|
||||
{
|
||||
return relativePath.StartsWith("Config", StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
static void UpdateResources(string resourcePackagePath, string resourceTargetDirectory)
|
||||
{
|
||||
var resourceStagingDirectory = Path.Combine(Path.GetTempPath(), "MikuSB", "resource-staging", Guid.NewGuid().ToString("N"));
|
||||
Directory.CreateDirectory(resourceStagingDirectory);
|
||||
|
||||
ZipFile.ExtractToDirectory(resourcePackagePath, resourceStagingDirectory, overwriteFiles: true);
|
||||
|
||||
var extractedRoot = Directory.GetDirectories(resourceStagingDirectory).FirstOrDefault() ?? resourceStagingDirectory;
|
||||
var excelOutputSource = Path.Combine(extractedRoot, "ExcelOutput");
|
||||
if (!Directory.Exists(excelOutputSource))
|
||||
throw new DirectoryNotFoundException($"ExcelOutput directory was not found in resource package: {excelOutputSource}");
|
||||
|
||||
var excelOutputTarget = Path.Combine(resourceTargetDirectory, "ExcelOutput");
|
||||
Directory.CreateDirectory(excelOutputTarget);
|
||||
CopyDirectory(excelOutputSource, excelOutputTarget);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user