add validators for command line arguments

This commit is contained in:
Syping 2025-11-20 02:48:36 +01:00
parent 601a34469a
commit de049c535b

View file

@ -121,7 +121,7 @@ internal static class Commands {
content = Encoding.UTF8.GetBytes($"{photo.Title}\n"); content = Encoding.UTF8.GetBytes($"{photo.Title}\n");
break; break;
default: default:
Console.Error.WriteLine($"Unknown Content Type: {dataType}"); Console.Error.WriteLine($"Unknown Data Type: {dataType}");
return 1; return 1;
} }
@ -284,6 +284,12 @@ internal static class Commands {
formatArgument.CompletionSources.Add(_ => [ formatArgument.CompletionSources.Add(_ => [
new("gta5"), new("gta5"),
new("rdr2")]); new("rdr2")]);
formatArgument.Validators.Add(result => {
String[] formats = ["gta5", "rdr2"];
String format = result.GetValueOrDefault<String>();
if (!formats.Contains(format, StringComparer.InvariantCultureIgnoreCase))
result.AddError("Invalid Photo Format.");
});
Option<String?> jpegOption = new("--jpeg", "--image", "-i") { Option<String?> jpegOption = new("--jpeg", "--image", "-i") {
Description = "JPEG File" Description = "JPEG File"
}; };
@ -330,6 +336,18 @@ internal static class Commands {
new("json"), new("json"),
new("sign"), new("sign"),
new("title")]); new("title")]);
dataTypeArgument.Validators.Add(result => {
String[] dataTypes = [
"d", "description",
"f", "format",
"i", "image", "jpeg",
"j", "json",
"s", "sign",
"t", "title"];
String dataType = result.GetValueOrDefault<String>();
if (!dataTypes.Contains(dataType, StringComparer.InvariantCultureIgnoreCase))
result.AddError($"Unknown Data Type: {dataType}.");
});
Option<String> outputOption = new("--output", "-o") { Option<String> outputOption = new("--output", "-o") {
Description = "Output File", Description = "Output File",
DefaultValueFactory = _ => "-" DefaultValueFactory = _ => "-"