display source for installed plugins
All checks were successful
Build / Compute Version (push) Successful in 5s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 1m41s
Build / Build Nuget package (NuGet) (push) Successful in 2m0s
Build / Build Nuget package (SharedCringe) (push) Successful in 2m42s
Build / Build Launcher (push) Successful in 3m57s
Build / Build Nuget package (CringePlugins) (push) Successful in 7m55s

This commit is contained in:
zznty
2024-11-04 01:18:56 +07:00
parent a9a203e5a8
commit 03e2eb9551
3 changed files with 16 additions and 10 deletions

View File

@@ -4,7 +4,7 @@ using NuGet.Versioning;
namespace CringePlugins.Loader;
public record PluginMetadata(string Name, NuGetVersion Version)
public record PluginMetadata(string Name, NuGetVersion Version, string Source)
{
public static PluginMetadata ReadFromEntrypoint(string entrypointPath)
{
@@ -20,6 +20,6 @@ public record PluginMetadata(string Name, NuGetVersion Version)
out var version))
version = new(0, 0, 0, 0);
return new(name, version);
return new(name, version, "Local");
}
}

View File

@@ -60,7 +60,7 @@ public class PluginsLifetime : ILoadingStage
progress.Report("Loading plugins");
await LoadPlugins(cachedPackages, sourceMapping);
await LoadPlugins(cachedPackages, sourceMapping, packagesConfig);
progress.Report("Registering plugins");
@@ -85,7 +85,8 @@ public class PluginsLifetime : ILoadingStage
}
}
private async Task LoadPlugins(IReadOnlySet<CachedPackage> packages, PackageSourceMapping sourceMapping)
private async Task LoadPlugins(IReadOnlySet<CachedPackage> packages, PackageSourceMapping sourceMapping,
PackagesConfig packagesConfig)
{
var plugins = _plugins.ToBuilder();
@@ -108,7 +109,10 @@ public class PluginsLifetime : ILoadingStage
await using (var stream = File.Create(Path.Join(dir, $"{package.Package.Id}.deps.json")))
await manifestBuilder.WriteDependencyManifestAsync(stream, package.Entry, _runtimeFramework);
LoadComponent(plugins, Path.Join(dir, $"{package.Package.Id}.dll"), new(package.Package.Id, package.Package.Version));
var client = await sourceMapping.GetClientAsync(package.Package.Id);
var sourceName = packagesConfig.Sources.First(b => b.Url == client.ToString()).Name;
LoadComponent(plugins, Path.Join(dir, $"{package.Package.Id}.dll"),
new(package.Package.Id, package.Package.Version, sourceName));
}
_plugins = plugins.ToImmutable();

View File

@@ -83,11 +83,11 @@ internal class PluginListComponent : IRenderComponent
// TODO support for opening plugin loader plugin config (reflection call to a specific method)
if (BeginTabItem("Installed Plugins"))
{
if (BeginTable("InstalledTable", 2, ImGuiTableFlags.ScrollY))
if (BeginTable("InstalledTable", 3, ImGuiTableFlags.ScrollY | ImGuiTableFlags.Resizable))
{
//todo: include plugin source (local, zznty nuget, etc) in menu?
TableSetupColumn("Id");
TableSetupColumn("Version");
TableSetupColumn("Id", ImGuiTableColumnFlags.None, .5f);
TableSetupColumn("Version", ImGuiTableColumnFlags.None, .25f);
TableSetupColumn("Source", ImGuiTableColumnFlags.None, .25f);
TableHeadersRow();
foreach (var plugin in _plugins)
@@ -101,6 +101,8 @@ internal class PluginListComponent : IRenderComponent
EndDisabled();
TableNextColumn();
Text(plugin.Metadata.Version.ToString());
TableNextColumn();
Text(plugin.Metadata.Source);
}
EndTable();