Skip to content

Commit 2e3055e

Browse files
authored
Merge pull request #789 from microsoft/enhancement/add-clean-output-param
Add --clean-output parameter to allow overwriting existing files
2 parents d81f53c + e31c9de commit 2e3055e

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/Microsoft.OpenApi.Hidi/OpenApiService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public static async Task<int> ProcessOpenApiDocument(
3333
string openapi,
3434
string csdl,
3535
FileInfo output,
36+
bool cleanoutput,
3637
string? version,
3738
OpenApiFormat? format,
3839
LogLevel loglevel,
@@ -56,6 +57,10 @@ CancellationToken cancellationToken
5657
{
5758
throw new ArgumentNullException(nameof(output));
5859
}
60+
if (cleanoutput && output.Exists)
61+
{
62+
output.Delete();
63+
}
5964
if (output.Exists)
6065
{
6166
throw new IOException($"The file {output} already exists. Please input a new file path.");

src/Microsoft.OpenApi.Hidi/Program.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ static async Task<int> Main(string[] args)
2626
var outputOption = new Option<FileInfo>("--output", () => new FileInfo("./output"), "The output directory path for the generated file.") { Arity = ArgumentArity.ZeroOrOne };
2727
outputOption.AddAlias("-o");
2828

29+
var cleanOutputOption = new Option<bool>("--clean-output", "Overwrite an existing file");
30+
cleanOutputOption.AddAlias("-co");
31+
2932
var versionOption = new Option<string?>("--version", "OpenAPI specification version");
3033
versionOption.AddAlias("-v");
3134

@@ -63,6 +66,7 @@ static async Task<int> Main(string[] args)
6366
descriptionOption,
6467
csdlOption,
6568
outputOption,
69+
cleanOutputOption,
6670
versionOption,
6771
formatOption,
6872
logLevelOption,
@@ -73,7 +77,7 @@ static async Task<int> Main(string[] args)
7377
resolveExternalOption,
7478
};
7579

76-
transformCommand.SetHandler<string, string, FileInfo, string?, OpenApiFormat?, LogLevel, bool, bool, string, string, string, CancellationToken> (
80+
transformCommand.SetHandler<string, string, FileInfo, bool, string?, OpenApiFormat?, LogLevel, bool, bool, string, string, string, CancellationToken> (
7781
OpenApiService.ProcessOpenApiDocument, descriptionOption, csdlOption, outputOption, versionOption, formatOption, logLevelOption, inlineOption, resolveExternalOption, filterByOperationIdsOption, filterByTagsOption, filterByCollectionOption);
7882

7983
rootCommand.Add(transformCommand);

0 commit comments

Comments
 (0)