Add quotes option to string input

This commit is contained in:
Matt Nadareski
2024-12-05 13:22:17 -05:00
parent b2ffa2025b
commit a5a048fcb0
4 changed files with 40 additions and 26 deletions

View File

@@ -37,6 +37,7 @@
- Add Aaru parameters tests
- Replace Aaru flag values with input types
- Add Redumper parameters tests
- Add quotes option to string input
### 3.2.4 (2024-11-24)

View File

@@ -292,7 +292,7 @@ namespace MPF.ExecutionContexts.Test
[InlineData("image decode --disk-tags true --length all --sector-tags true --start 0 filename.bin")]
public void ImageDecodeTest(string parameters)
{
string? expected = "image decode --disk-tags True --sector-tags True --length \"all\" --start 0 \"filename.bin\"";
string? expected = "image decode --disk-tags True --sector-tags True --length all --start 0 \"filename.bin\"";
var context = new ExecutionContext(parameters);
string? actual = context.GenerateParameters();
Assert.Equal(expected, actual);
@@ -348,7 +348,7 @@ namespace MPF.ExecutionContexts.Test
[InlineData("image print --length 0 --long-sectors true --start 0 --width 0 filename.bin")]
public void ImagePrintTest(string parameters)
{
string? expected = "image print --long-sectors True --width 0 --length \"0\" --start 0 \"filename.bin\"";
string? expected = "image print --long-sectors True --width 0 --length 0 --start 0 \"filename.bin\"";
var context = new ExecutionContext(parameters);
string? actual = context.GenerateParameters();
Assert.Equal(expected, actual);

View File

@@ -132,29 +132,29 @@ namespace MPF.ExecutionContexts.Aaru
[FlagStrings.StartLong] = new Int64Input(FlagStrings.StartShort, FlagStrings.StartLong),
// String flags
[FlagStrings.CommentsLong] = new StringInput(FlagStrings.CommentsLong),
[FlagStrings.CreatorLong] = new StringInput(FlagStrings.CreatorLong),
[FlagStrings.DriveManufacturerLong] = new StringInput(FlagStrings.DriveManufacturerLong),
[FlagStrings.DriveModelLong] = new StringInput(FlagStrings.DriveModelLong),
[FlagStrings.DriveRevisionLong] = new StringInput(FlagStrings.DriveRevisionLong),
[FlagStrings.DriveSerialLong] = new StringInput(FlagStrings.DriveSerialLong),
[FlagStrings.EncodingLong] = new StringInput(FlagStrings.EncodingShort, FlagStrings.EncodingLong),
[FlagStrings.FormatLong] = new StringInput([FlagStrings.FormatLong, FlagStrings.FormatConvertShort, FlagStrings.FormatDumpShort]),
[FlagStrings.GeometryLong] = new StringInput(FlagStrings.GeometryShort, FlagStrings.GeometryLong),
[FlagStrings.ImgBurnLogLong] = new StringInput(FlagStrings.ImgBurnLogShort, FlagStrings.ImgBurnLogLong),
[FlagStrings.MediaBarcodeLong] = new StringInput(FlagStrings.MediaBarcodeLong),
[FlagStrings.MediaManufacturerLong] = new StringInput(FlagStrings.MediaManufacturerLong),
[FlagStrings.MediaModelLong] = new StringInput(FlagStrings.MediaModelLong),
[FlagStrings.MediaPartNumberLong] = new StringInput(FlagStrings.MediaPartNumberLong),
[FlagStrings.MediaSerialLong] = new StringInput(FlagStrings.MediaSerialLong),
[FlagStrings.MediaTitleLong] = new StringInput(FlagStrings.MediaTitleLong),
[FlagStrings.MHDDLogLong] = new StringInput(FlagStrings.MHDDLogShort, FlagStrings.MHDDLogLong),
[FlagStrings.NamespaceLong] = new StringInput(FlagStrings.NamespaceShort, FlagStrings.NamespaceLong),
[FlagStrings.OptionsLong] = new StringInput(FlagStrings.OptionsShort, FlagStrings.OptionsLong),
[FlagStrings.OutputPrefixLong] = new StringInput(FlagStrings.OutputPrefixShort, FlagStrings.OutputPrefixLong),
[FlagStrings.ResumeFileLong] = new StringInput(FlagStrings.ResumeFileShort, FlagStrings.ResumeFileLong),
[FlagStrings.SubchannelLong] = new StringInput(FlagStrings.SubchannelLong),
[FlagStrings.XMLSidecarLong] = new StringInput(FlagStrings.XMLSidecarShort, FlagStrings.XMLSidecarLong),
[FlagStrings.CommentsLong] = new StringInput(FlagStrings.CommentsLong) { Quotes = true },
[FlagStrings.CreatorLong] = new StringInput(FlagStrings.CreatorLong) { Quotes = true },
[FlagStrings.DriveManufacturerLong] = new StringInput(FlagStrings.DriveManufacturerLong) { Quotes = true },
[FlagStrings.DriveModelLong] = new StringInput(FlagStrings.DriveModelLong) { Quotes = true },
[FlagStrings.DriveRevisionLong] = new StringInput(FlagStrings.DriveRevisionLong) { Quotes = true },
[FlagStrings.DriveSerialLong] = new StringInput(FlagStrings.DriveSerialLong) { Quotes = true },
[FlagStrings.EncodingLong] = new StringInput(FlagStrings.EncodingShort, FlagStrings.EncodingLong) { Quotes = true },
[FlagStrings.FormatLong] = new StringInput([FlagStrings.FormatLong, FlagStrings.FormatConvertShort, FlagStrings.FormatDumpShort]) { Quotes = true },
[FlagStrings.GeometryLong] = new StringInput(FlagStrings.GeometryShort, FlagStrings.GeometryLong) { Quotes = true },
[FlagStrings.ImgBurnLogLong] = new StringInput(FlagStrings.ImgBurnLogShort, FlagStrings.ImgBurnLogLong) { Quotes = true },
[FlagStrings.MediaBarcodeLong] = new StringInput(FlagStrings.MediaBarcodeLong) { Quotes = true },
[FlagStrings.MediaManufacturerLong] = new StringInput(FlagStrings.MediaManufacturerLong) { Quotes = true },
[FlagStrings.MediaModelLong] = new StringInput(FlagStrings.MediaModelLong) { Quotes = true },
[FlagStrings.MediaPartNumberLong] = new StringInput(FlagStrings.MediaPartNumberLong) { Quotes = true },
[FlagStrings.MediaSerialLong] = new StringInput(FlagStrings.MediaSerialLong) { Quotes = true },
[FlagStrings.MediaTitleLong] = new StringInput(FlagStrings.MediaTitleLong) { Quotes = true },
[FlagStrings.MHDDLogLong] = new StringInput(FlagStrings.MHDDLogShort, FlagStrings.MHDDLogLong) { Quotes = true },
[FlagStrings.NamespaceLong] = new StringInput(FlagStrings.NamespaceShort, FlagStrings.NamespaceLong) { Quotes = true },
[FlagStrings.OptionsLong] = new StringInput(FlagStrings.OptionsShort, FlagStrings.OptionsLong) { Quotes = true },
[FlagStrings.OutputPrefixLong] = new StringInput(FlagStrings.OutputPrefixShort, FlagStrings.OutputPrefixLong) { Quotes = true },
[FlagStrings.ResumeFileLong] = new StringInput(FlagStrings.ResumeFileShort, FlagStrings.ResumeFileLong) { Quotes = true },
[FlagStrings.SubchannelLong] = new StringInput(FlagStrings.SubchannelLong) { Quotes = true },
[FlagStrings.XMLSidecarLong] = new StringInput(FlagStrings.XMLSidecarShort, FlagStrings.XMLSidecarLong) { Quotes = true },
};
#endregion

View File

@@ -7,7 +7,17 @@ namespace MPF.ExecutionContexts.Data
/// Represents a string flag with an optional trailing value
/// </summary>
public class StringInput : Input<string>
{
#region Properties
/// <summary>
/// Indicates whether quotes are used in output or not
/// </summary>
public bool Quotes { get; set; } = false;
#endregion
#region Constructors
/// <inheritdoc/>
@@ -63,7 +73,10 @@ namespace MPF.ExecutionContexts.Data
builder.Append(" ");
// Value
builder.Append($"\"{Value}\"");
if (Quotes)
builder.Append($"\"{Value}\"");
else
builder.Append(Value);
}
return builder.ToString();