From a5a048fcb0e1ba370585aa9400fa4d287633e2a6 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 5 Dec 2024 13:22:17 -0500 Subject: [PATCH] Add quotes option to string input --- CHANGELIST.md | 1 + MPF.ExecutionContexts.Test/AaruTests.cs | 4 +- .../Aaru/ExecutionContext.cs | 46 +++++++++---------- MPF.ExecutionContexts/Data/StringInput.cs | 15 +++++- 4 files changed, 40 insertions(+), 26 deletions(-) diff --git a/CHANGELIST.md b/CHANGELIST.md index d99ab7b4..be58fe28 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -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) diff --git a/MPF.ExecutionContexts.Test/AaruTests.cs b/MPF.ExecutionContexts.Test/AaruTests.cs index 35e6f018..c3e76c56 100644 --- a/MPF.ExecutionContexts.Test/AaruTests.cs +++ b/MPF.ExecutionContexts.Test/AaruTests.cs @@ -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); diff --git a/MPF.ExecutionContexts/Aaru/ExecutionContext.cs b/MPF.ExecutionContexts/Aaru/ExecutionContext.cs index dbd708d3..6ea02dad 100644 --- a/MPF.ExecutionContexts/Aaru/ExecutionContext.cs +++ b/MPF.ExecutionContexts/Aaru/ExecutionContext.cs @@ -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 diff --git a/MPF.ExecutionContexts/Data/StringInput.cs b/MPF.ExecutionContexts/Data/StringInput.cs index a8da523c..0673ee41 100644 --- a/MPF.ExecutionContexts/Data/StringInput.cs +++ b/MPF.ExecutionContexts/Data/StringInput.cs @@ -7,7 +7,17 @@ namespace MPF.ExecutionContexts.Data /// Represents a string flag with an optional trailing value /// public class StringInput : Input + { + #region Properties + + /// + /// Indicates whether quotes are used in output or not + /// + public bool Quotes { get; set; } = false; + + #endregion + #region Constructors /// @@ -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();