From 126bae33a4c45eed5db13d00a143d9aac517a703 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 16 Aug 2024 14:29:42 -0400 Subject: [PATCH] Fix some CLI issues (fixes #736, fixes #737) --- CHANGELIST.md | 1 + MPF.CLI/Program.cs | 41 +++++++++++++++++------------------------ 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/CHANGELIST.md b/CHANGELIST.md index 3f925d0f..39efba93 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -9,6 +9,7 @@ - Move two extensions to a better location - Fix XGD3 SS ranges - Fix config location in OptionsLoader +- Fix some CLI issues ### 3.2.1 (2024-08-05) diff --git a/MPF.CLI/Program.cs b/MPF.CLI/Program.cs index 0eb6c155..ef8bb4e0 100644 --- a/MPF.CLI/Program.cs +++ b/MPF.CLI/Program.cs @@ -39,13 +39,6 @@ namespace MPF.CLI return; } - // Check for the minimum number of arguments - if (args.Length < 4) - { - DisplayHelp("Not enough arguments have been provided, exiting..."); - return; - } - // Try processing the common arguments (bool success, MediaType mediaType, RedumpSystem? knownSystem, var error) = OptionsLoader.ProcessCommonArguments(args); if (!success) @@ -54,6 +47,14 @@ namespace MPF.CLI return; } + // Validate the supplied credentials + (bool? _, string? message) = RedumpClient.ValidateCredentials(options.RedumpUsername ?? string.Empty, options.RedumpPassword ?? string.Empty).GetAwaiter().GetResult(); + if (!string.IsNullOrEmpty(message)) + Console.WriteLine(message); + + // Process any custom parameters + (CommandOptions opts, int startIndex) = LoadFromArguments(args, options, startIndex: 2); + // Validate the internal program switch (options.InternalProgram) { @@ -86,22 +87,8 @@ namespace MPF.CLI break; } - // Make new Progress objects - var resultProgress = new Progress(); - resultProgress.ProgressChanged += ConsoleLogger.ProgressUpdated; - var protectionProgress = new Progress(); - protectionProgress.ProgressChanged += ConsoleLogger.ProgressUpdated; - - // Validate the supplied credentials - (bool? _, string? message) = RedumpClient.ValidateCredentials(options.RedumpUsername ?? string.Empty, options.RedumpPassword ?? string.Empty).GetAwaiter().GetResult(); - if (!string.IsNullOrEmpty(message)) - Console.WriteLine(message); - - // Process any custom parameters - (CommandOptions opts, int startIndex) = LoadFromArguments(args, options, startIndex: 2); - // Ensure we have the values we need - if (opts.CustomParams == null && (opts.DevicePath == null || opts.DevicePath == null)) + if (opts.CustomParams == null && (opts.DevicePath == null || opts.FilePath == null)) { DisplayHelp("Both a device path and file path need to be supplied, exiting..."); return; @@ -123,6 +110,12 @@ namespace MPF.CLI } env.SetExecutionContext(paramStr); + // Make new Progress objects + var resultProgress = new Progress(); + resultProgress.ProgressChanged += ConsoleLogger.ProgressUpdated; + var protectionProgress = new Progress(); + protectionProgress.ProgressChanged += ConsoleLogger.ProgressUpdated; + // Invoke the dumping program Console.WriteLine($"Invoking {options.InternalProgram} using '{paramStr}'"); var dumpResult = env.Run(resultProgress).GetAwaiter().GetResult(); @@ -176,8 +169,8 @@ namespace MPF.CLI Console.WriteLine("-c, --custom \"\" Custom parameters to use"); Console.WriteLine(); - Console.WriteLine("Custom parameters, if used, will fully replace the default parameters."); - Console.WriteLine("All parameters need to be supplied if doing this."); + Console.WriteLine("Custom dumping parameters, if used, will fully replace the default parameters."); + Console.WriteLine("All dumping parameters need to be supplied if doing this."); Console.WriteLine(); }