about summary refs log tree commit diff
path: root/MatrixUtils.RoomUpgradeCLI/Commands/ExecuteCommand.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-08-16 00:19:40 +0200
committerRory& <root@rory.gay>2025-08-16 00:19:40 +0200
commit97e5c8864c7efd79f97f1e527997d09cff635399 (patch)
tree562cdd066b2c74eafe7ddb398ac5a227c97872e3 /MatrixUtils.RoomUpgradeCLI/Commands/ExecuteCommand.cs
parentRoom upgrade CLI changes (diff)
downloadMatrixUtils-97e5c8864c7efd79f97f1e527997d09cff635399.tar.xz
Further room cleanup work
Diffstat (limited to 'MatrixUtils.RoomUpgradeCLI/Commands/ExecuteCommand.cs')
-rw-r--r--MatrixUtils.RoomUpgradeCLI/Commands/ExecuteCommand.cs30
1 files changed, 27 insertions, 3 deletions
diff --git a/MatrixUtils.RoomUpgradeCLI/Commands/ExecuteCommand.cs b/MatrixUtils.RoomUpgradeCLI/Commands/ExecuteCommand.cs

index 5815a35..41c8cca 100644 --- a/MatrixUtils.RoomUpgradeCLI/Commands/ExecuteCommand.cs +++ b/MatrixUtils.RoomUpgradeCLI/Commands/ExecuteCommand.cs
@@ -1,6 +1,5 @@ using System.Text.Json; using System.Text.Json.Nodes; -using ArcaneLibs.Extensions; using LibMatrix.Helpers; using LibMatrix.Homeservers; @@ -18,14 +17,39 @@ public class ExecuteCommand(ILogger<ExecuteCommand> logger, IHost host, RuntimeC await PrintHelp(); } + if (Directory.Exists(filename)) { + await ExecuteDirectory(filename); + } + else if (File.Exists(filename)) { + await ExecuteFile(filename); + } + else { + Console.WriteLine($"File or directory {filename} does not exist."); + await PrintHelp(); + } + + await host.StopAsync(cancellationToken); + } + + public async Task ExecuteFile(string filename) { var rbj = await JsonSerializer.DeserializeAsync<JsonObject>(File.OpenRead(filename)); var rb = rbj.ContainsKey(nameof(RoomUpgradeBuilder.OldRoomId)) ? rbj.Deserialize<RoomUpgradeBuilder>() : rbj.Deserialize<RoomBuilder>(); Console.WriteLine($"Executing room builder file of type {rb.GetType().Name}..."); await rb!.Create(hs); - - await host.StopAsync(cancellationToken); + } + + public async Task ExecuteDirectory(string dirName) { + if (!Directory.Exists(dirName)) { + Console.WriteLine($"Directory {dirName} does not exist."); + return; + } + var files = Directory.GetFiles(dirName, "*.json"); + foreach (var file in files) { + Console.WriteLine($"Executing file: {file}"); + await ExecuteFile(file); + } } public async Task StopAsync(CancellationToken cancellationToken) { }