feat(porttracker): add all remaining commands (feature, test, library, dependency, report, phase)
This commit is contained in:
58
tools/NatsNet.PortTracker/Commands/ReportCommands.cs
Normal file
58
tools/NatsNet.PortTracker/Commands/ReportCommands.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System.CommandLine;
|
||||
using NatsNet.PortTracker.Data;
|
||||
using NatsNet.PortTracker.Reporting;
|
||||
|
||||
namespace NatsNet.PortTracker.Commands;
|
||||
|
||||
public static class ReportCommands
|
||||
{
|
||||
public static Command Create(Option<string> dbOption, Option<string> schemaOption)
|
||||
{
|
||||
var reportCommand = new Command("report", "Generate reports");
|
||||
|
||||
// summary
|
||||
var summaryCmd = new Command("summary", "Show status summary");
|
||||
summaryCmd.SetAction(parseResult =>
|
||||
{
|
||||
var dbPath = parseResult.GetValue(dbOption)!;
|
||||
using var db = new Database(dbPath);
|
||||
ReportGenerator.PrintSummary(db);
|
||||
});
|
||||
|
||||
// export
|
||||
var exportFormat = new Option<string>("--format") { Description = "Export format (md)", DefaultValueFactory = _ => "md" };
|
||||
var exportOutput = new Option<string?>("--output") { Description = "Output file path (stdout if not specified)" };
|
||||
var exportCmd = new Command("export", "Export status report");
|
||||
exportCmd.Add(exportFormat);
|
||||
exportCmd.Add(exportOutput);
|
||||
exportCmd.SetAction(parseResult =>
|
||||
{
|
||||
var dbPath = parseResult.GetValue(dbOption)!;
|
||||
var format = parseResult.GetValue(exportFormat)!;
|
||||
var output = parseResult.GetValue(exportOutput);
|
||||
using var db = new Database(dbPath);
|
||||
|
||||
if (format != "md")
|
||||
{
|
||||
Console.WriteLine($"Unsupported format: {format}. Supported: md");
|
||||
return;
|
||||
}
|
||||
|
||||
var markdown = ReportGenerator.ExportMarkdown(db);
|
||||
if (output is not null)
|
||||
{
|
||||
File.WriteAllText(output, markdown);
|
||||
Console.WriteLine($"Report exported to {output}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.Write(markdown);
|
||||
}
|
||||
});
|
||||
|
||||
reportCommand.Add(summaryCmd);
|
||||
reportCommand.Add(exportCmd);
|
||||
|
||||
return reportCommand;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user