Recreated plugin with new project template. Started implementing server system daemon

This commit is contained in:
2026-03-01 21:09:29 +01:00
parent f6b71f4de6
commit 52dbd13fb5
350 changed files with 2795 additions and 21553 deletions

View File

@@ -0,0 +1,46 @@
using MoonlightServers.Daemon.Models;
using MoonlightServers.Daemon.ServerSystem.Abstractions;
namespace MoonlightServers.Daemon.ServerSystem.Implementations.Local;
public class LocalRuntimeStorageService : IRuntimeStorageService
{
private const string HostPathTemplate = "./mldaemon/runtime/{0}";
public Task<IRuntimeStorage?> FindAsync(string id)
{
var path = string.Format(HostPathTemplate, id);
if (!Directory.Exists(path))
return Task.FromResult<IRuntimeStorage?>(null);
return Task.FromResult<IRuntimeStorage?>(new LocalRuntimeStorage(path));
}
public Task<IRuntimeStorage> CreateAsync(string id, RuntimeConfiguration configuration)
{
var path = string.Format(HostPathTemplate, id);
Directory.CreateDirectory(path);
return Task.FromResult<IRuntimeStorage>(new LocalRuntimeStorage(path));
}
public Task UpdateAsync(IRuntimeStorage runtimeStorage, RuntimeConfiguration configuration)
=> Task.CompletedTask;
public Task DeleteAsync(IRuntimeStorage runtimeStorage)
{
if (runtimeStorage is not LocalRuntimeStorage localRuntimeStorage)
{
throw new ArgumentException(
$"You cannot delete runtime storages which haven't been created by {nameof(LocalRuntimeStorageService)}"
);
}
if(Directory.Exists(localRuntimeStorage.HostPath))
Directory.Delete(localRuntimeStorage.HostPath, true);
return Task.CompletedTask;
}
}