Skip to content

Commit 7defeda

Browse files
committed
Add a --clean-output parameter for overwriting existing files
1 parent 9ce2b27 commit 7defeda

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/Microsoft.OpenApi.Hidi/OpenApiService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public static async Task ProcessOpenApiDocument(
3131
string openapi,
3232
string csdl,
3333
FileInfo output,
34+
bool cleanoutput,
3435
OpenApiSpecVersion? version,
3536
OpenApiFormat? format,
3637
LogLevel loglevel,
@@ -69,6 +70,10 @@ string filterbycollection
6970
}
7071
try
7172
{
73+
if (cleanoutput)
74+
{
75+
output.Delete();
76+
}
7277
if (output.Exists)
7378
{
7479
throw new IOException("The file you're writing to already exists. Please input a new file path.");

src/Microsoft.OpenApi.Hidi/Program.cs

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

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

@@ -62,6 +65,7 @@ static async Task<int> Main(string[] args)
6265
descriptionOption,
6366
csdlOption,
6467
outputOption,
68+
cleanOutputOption,
6569
versionOption,
6670
formatOption,
6771
logLevelOption,
@@ -72,8 +76,8 @@ static async Task<int> Main(string[] args)
7276
resolveExternalOption,
7377
};
7478

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

7882
rootCommand.Add(transformCommand);
7983
rootCommand.Add(validateCommand);

0 commit comments

Comments
 (0)