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
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:
@@ -4,7 +4,7 @@ using NuGet.Versioning;
|
|||||||
|
|
||||||
namespace CringePlugins.Loader;
|
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)
|
public static PluginMetadata ReadFromEntrypoint(string entrypointPath)
|
||||||
{
|
{
|
||||||
@@ -20,6 +20,6 @@ public record PluginMetadata(string Name, NuGetVersion Version)
|
|||||||
out var version))
|
out var version))
|
||||||
version = new(0, 0, 0, 0);
|
version = new(0, 0, 0, 0);
|
||||||
|
|
||||||
return new(name, version);
|
return new(name, version, "Local");
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -60,7 +60,7 @@ public class PluginsLifetime : ILoadingStage
|
|||||||
|
|
||||||
progress.Report("Loading plugins");
|
progress.Report("Loading plugins");
|
||||||
|
|
||||||
await LoadPlugins(cachedPackages, sourceMapping);
|
await LoadPlugins(cachedPackages, sourceMapping, packagesConfig);
|
||||||
|
|
||||||
progress.Report("Registering plugins");
|
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();
|
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 using (var stream = File.Create(Path.Join(dir, $"{package.Package.Id}.deps.json")))
|
||||||
await manifestBuilder.WriteDependencyManifestAsync(stream, package.Entry, _runtimeFramework);
|
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();
|
_plugins = plugins.ToImmutable();
|
||||||
|
@@ -83,11 +83,11 @@ internal class PluginListComponent : IRenderComponent
|
|||||||
// TODO support for opening plugin loader plugin config (reflection call to a specific method)
|
// TODO support for opening plugin loader plugin config (reflection call to a specific method)
|
||||||
if (BeginTabItem("Installed Plugins"))
|
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", ImGuiTableColumnFlags.None, .5f);
|
||||||
TableSetupColumn("Id");
|
TableSetupColumn("Version", ImGuiTableColumnFlags.None, .25f);
|
||||||
TableSetupColumn("Version");
|
TableSetupColumn("Source", ImGuiTableColumnFlags.None, .25f);
|
||||||
TableHeadersRow();
|
TableHeadersRow();
|
||||||
|
|
||||||
foreach (var plugin in _plugins)
|
foreach (var plugin in _plugins)
|
||||||
@@ -101,6 +101,8 @@ internal class PluginListComponent : IRenderComponent
|
|||||||
EndDisabled();
|
EndDisabled();
|
||||||
TableNextColumn();
|
TableNextColumn();
|
||||||
Text(plugin.Metadata.Version.ToString());
|
Text(plugin.Metadata.Version.ToString());
|
||||||
|
TableNextColumn();
|
||||||
|
Text(plugin.Metadata.Source);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndTable();
|
EndTable();
|
||||||
|
Reference in New Issue
Block a user