-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
wip: Add functionality to extract documentation
- Loading branch information
1 parent
72e4633
commit ad98f5f
Showing
23 changed files
with
487 additions
and
100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule EAVFW.Extensions.CommandLine
updated
3 files
+2 −2 | .github/workflows/build.yml | |
+2 −2 | .github/workflows/release.yml | |
+6 −1 | src/EAVFW.Extensions.CommandLine/EAVFW.Extensions.CommandLine.csproj |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 18 additions & 42 deletions
60
src/EAVFW.Extensions.Manifest.ManifestEnricherTool/App.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,77 +1,53 @@ | ||
| ||
// See https://aka.ms/new-console-template for more information | ||
|
||
|
||
// See https://aka.ms/new-console-template for more information | ||
using System; | ||
using EAVFW.Extensions.Manifest.ManifestEnricherTool; | ||
using EAVFW.Extensions.Manifest.SDK; | ||
using Microsoft.Extensions.Logging; | ||
using Newtonsoft.Json.Linq; | ||
using System.Collections.Generic; | ||
using System.CommandLine; | ||
using System.CommandLine.NamingConventionBinder; | ||
using System.CommandLine.Parsing; | ||
using System.IO; | ||
using System.Linq; | ||
using System.Reflection; | ||
using System.Text.Json; | ||
using System.Threading.Tasks; | ||
|
||
public class App : System.CommandLine.RootCommand | ||
{ | ||
public Option<string> Path = new Option<string>("--path", "The path"); | ||
public Option<FileInfo> Path = new Option<FileInfo>("--path", "The path"); | ||
public Option<string> Prefix = new Option<string>(new string[] { "--customizationprefix" }, "The prefix"); | ||
|
||
private readonly ILogger<App> logger; | ||
private readonly IManifestEnricher manifestEnricher; | ||
private readonly IManifestMerger _manifestMerger; | ||
|
||
public App(ILogger<App> logger, IEnumerable<Command> commands, IManifestEnricher manifestEnricher) : base($"Generating Manifest: v{Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion}") | ||
public App(ILogger<App> logger, IEnumerable<Command> commands, IManifestEnricher manifestEnricher, IManifestMerger manifestMerger) : base( | ||
$"Generating Manifest: v{Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion}") | ||
{ | ||
this.logger=logger; | ||
this.logger = logger; | ||
this.manifestEnricher = manifestEnricher; | ||
Path.IsRequired=true; | ||
|
||
Add(Path); | ||
_manifestMerger = manifestMerger ?? throw new ArgumentNullException(nameof(manifestMerger)); | ||
Path.IsRequired = true; | ||
|
||
Add(Path); | ||
Add(Prefix); | ||
|
||
foreach (var command in commands) | ||
Add(command); | ||
|
||
Handler = CommandHandler.Create<ParseResult,IConsole>(Run); | ||
Handler = CommandHandler.Create<ParseResult, IConsole>(Run); | ||
} | ||
|
||
public async Task Run(ParseResult parseResult, IConsole console) //(string path, string customizationprefix) | ||
public async Task Run(ParseResult parseResult, IConsole console) | ||
{ | ||
var path = parseResult.GetValueForOption(Path); | ||
var customizationprefix = parseResult.GetValueForOption(Prefix); | ||
|
||
console.Out.Write($"Generating Manifest: v{Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion} - {Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyVersionAttribute>()?.Version}"); | ||
|
||
// var cmd = new EAVFW.Extensions.Manifest.ManifestEnricherTool.RootCommand(); | ||
|
||
|
||
|
||
|
||
using (var fs = File.OpenRead(path)) | ||
{ | ||
|
||
var jsonraw = Newtonsoft.Json.Linq.JToken.ReadFrom(new Newtonsoft.Json.JsonTextReader(new StreamReader(fs))) as JObject; | ||
var others = Directory.GetFiles(System.IO.Path.GetDirectoryName(path), "manifest.*.json") | ||
.Where(c => !string.Equals("manifest.schema.json", System.IO.Path.GetFileName(c), System.StringComparison.OrdinalIgnoreCase)); | ||
foreach (var other in others) | ||
{ | ||
jsonraw.Merge(JToken.Parse(File.ReadAllText(other)), new JsonMergeSettings | ||
{ | ||
// union array values together to avoid duplicates | ||
MergeArrayHandling = MergeArrayHandling.Union, | ||
PropertyNameComparison = System.StringComparison.OrdinalIgnoreCase, | ||
MergeNullValueHandling = MergeNullValueHandling.Ignore | ||
}); | ||
} | ||
|
||
JsonDocument json = await manifestEnricher.LoadJsonDocumentAsync(jsonraw, customizationprefix, logger); | ||
} | ||
|
||
|
||
console.Out.Write( | ||
$"Generating Manifest: v{Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion} - {Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyVersionAttribute>()?.Version}"); | ||
|
||
var t = await _manifestMerger.MergeManifests(path); | ||
JsonDocument json = await manifestEnricher.LoadJsonDocumentAsync(t, customizationprefix, logger); | ||
} | ||
} | ||
} |
Oops, something went wrong.