Added UpdateWebAssetsCommand

This commit is contained in:
Thorsten Sommer 2025-04-13 11:56:02 +02:00
parent 5d74df36a8
commit 2ce68cdca6
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108
2 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,42 @@
// ReSharper disable ClassNeverInstantiated.Global
// ReSharper disable UnusedType.Global
// ReSharper disable UnusedMember.Global
namespace Build.Commands;
public sealed class UpdateWebAssetsCommand
{
[Command("update-web", Description = "Update web assets")]
public void UpdateWebAssets()
{
if(!Environment.IsWorkingDirectoryValid())
return;
var rid = Environment.GetRidsForCurrentOS().First();
var cwd = Environment.GetAIStudioDirectory();
var contentPath = Path.Join(cwd, "bin", "release", "net9.0", rid, "publish", "wwwroot", "_content");
var isMudBlazorDirectoryPresent = Directory.Exists(Path.Join(contentPath, "MudBlazor"));
if (!isMudBlazorDirectoryPresent)
{
Console.WriteLine($"No web assets found for RID '{rid}'. Please publish the project first.");
return;
}
Directory.CreateDirectory(Path.Join(cwd, "wwwroot", "system"));
var sourcePaths = Directory.EnumerateFiles(contentPath, "*", SearchOption.AllDirectories);
var counter = 0;
foreach(var sourcePath in sourcePaths)
{
counter++;
var relativePath = Path.GetRelativePath(cwd, sourcePath);
var targetPath = Path.Join(cwd, "wwwroot", relativePath);
var targetDirectory = Path.GetDirectoryName(targetPath);
if (targetDirectory != null)
Directory.CreateDirectory(targetDirectory);
File.Copy(sourcePath, targetPath, true);
}
Console.WriteLine($"{counter:###,###} web assets updated successfully.");
}
}

View File

@ -4,4 +4,5 @@ var builder = CoconaApp.CreateBuilder();
var app = builder.Build(); var app = builder.Build();
app.AddCommands<CheckRidsCommand>(); app.AddCommands<CheckRidsCommand>();
app.AddCommands<UpdateMetadataCommands>(); app.AddCommands<UpdateMetadataCommands>();
app.AddCommands<UpdateWebAssetsCommand>();
app.Run(); app.Run();