audit remarks work
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using System.CommandLine;
|
||||
using StellaOps.Policy;
|
||||
|
||||
namespace StellaOps.Policy.Tools;
|
||||
|
||||
public static class PolicyDslValidatorCommand
|
||||
{
|
||||
public static RootCommand Build(IPolicyValidationRunner runner, CancellationToken? cancellationTokenOverride = null)
|
||||
{
|
||||
var root = new RootCommand("Validate StellaOps policy DSL files.");
|
||||
Configure(root, runner, cancellationTokenOverride);
|
||||
return root;
|
||||
}
|
||||
|
||||
public static Command BuildCommand(IPolicyValidationRunner runner, CancellationToken? cancellationTokenOverride = null)
|
||||
{
|
||||
var command = new Command("policy-dsl-validate", "Validate StellaOps policy DSL files.");
|
||||
Configure(command, runner, cancellationTokenOverride);
|
||||
return command;
|
||||
}
|
||||
|
||||
private static void Configure(Command command, IPolicyValidationRunner runner, CancellationToken? cancellationTokenOverride)
|
||||
{
|
||||
var inputs = new Argument<List<string>>("inputs")
|
||||
{
|
||||
Description = "Policy files, directories, or globs to validate.",
|
||||
Arity = ArgumentArity.OneOrMore
|
||||
};
|
||||
|
||||
var strict = new Option<bool>("--strict", new[] { "-s" })
|
||||
{
|
||||
Description = "Treat warnings as errors."
|
||||
};
|
||||
|
||||
var outputJson = new Option<bool>("--json", new[] { "-j" })
|
||||
{
|
||||
Description = "Emit machine-readable JSON output."
|
||||
};
|
||||
|
||||
command.Add(inputs);
|
||||
command.Add(strict);
|
||||
command.Add(outputJson);
|
||||
|
||||
command.SetAction(async (parseResult, cancellationToken) =>
|
||||
{
|
||||
var options = new PolicyValidationCliOptions
|
||||
{
|
||||
Inputs = parseResult.GetValue(inputs) ?? new List<string>(),
|
||||
Strict = parseResult.GetValue(strict),
|
||||
OutputJson = parseResult.GetValue(outputJson),
|
||||
};
|
||||
|
||||
var effectiveCancellationToken = cancellationTokenOverride ?? cancellationToken;
|
||||
return await runner.RunAsync(options, effectiveCancellationToken);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user