diff --git a/CHANGELIST.md b/CHANGELIST.md index b1532a39..34ad5a13 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -165,6 +165,7 @@ - Add disc type parsing for Aaru and DIC - Fix multiple DiscType for DIC - Fix multiple DiscType* for DIC +- Add logging to !submissionInfo writing failure ### 2.3 (2022-02-05) - Start overhauling Redump information pulling, again diff --git a/MPF.Library/DumpEnvironment.cs b/MPF.Library/DumpEnvironment.cs index 599de669..a801bfd7 100644 --- a/MPF.Library/DumpEnvironment.cs +++ b/MPF.Library/DumpEnvironment.cs @@ -375,18 +375,18 @@ namespace MPF.Library // Write the text output resultProgress?.Report(Result.Success("Writing information to !submissionInfo.txt...")); - bool success = InfoTool.WriteOutputData(this.OutputDirectory, formattedValues); - if (success) - resultProgress?.Report(Result.Success("Writing complete!")); + (bool txtSuccess, string txtResult) = InfoTool.WriteOutputData(this.OutputDirectory, formattedValues); + if (txtSuccess) + resultProgress?.Report(Result.Success(txtResult)); else - resultProgress?.Report(Result.Failure("Writing could not complete!")); + resultProgress?.Report(Result.Failure(txtResult)); // Write the copy protection output if (Options.ScanForProtection && Options.OutputSeparateProtectionFile) { resultProgress?.Report(Result.Success("Writing protection to !protectionInfo.txt...")); - success = InfoTool.WriteProtectionData(this.OutputDirectory, submissionInfo); - if (success) + bool scanSuccess = InfoTool.WriteProtectionData(this.OutputDirectory, submissionInfo); + if (scanSuccess) resultProgress?.Report(Result.Success("Writing complete!")); else resultProgress?.Report(Result.Failure("Writing could not complete!")); @@ -396,8 +396,8 @@ namespace MPF.Library if (Options.OutputSubmissionJSON) { resultProgress?.Report(Result.Success($"Writing information to !submissionInfo.json{(Options.IncludeArtifacts ? ".gz" : string.Empty)}...")); - success = InfoTool.WriteOutputData(this.OutputDirectory, submissionInfo, Options.IncludeArtifacts); - if (success) + bool jsonSuccess = InfoTool.WriteOutputData(this.OutputDirectory, submissionInfo, Options.IncludeArtifacts); + if (jsonSuccess) resultProgress?.Report(Result.Success("Writing complete!")); else resultProgress?.Report(Result.Failure("Writing could not complete!")); @@ -407,11 +407,11 @@ namespace MPF.Library if (Options.CompressLogFiles) { resultProgress?.Report(Result.Success("Compressing log files...")); - (bool compressSuccess, string statement) = InfoTool.CompressLogFiles(this.OutputDirectory, this.OutputFilename, this.Parameters); + (bool compressSuccess, string compressResult) = InfoTool.CompressLogFiles(this.OutputDirectory, this.OutputFilename, this.Parameters); if (compressSuccess) - resultProgress?.Report(Result.Success(statement)); + resultProgress?.Report(Result.Success(compressResult)); else - resultProgress?.Report(Result.Failure(statement)); + resultProgress?.Report(Result.Failure(compressResult)); } resultProgress?.Report(Result.Success("Submission information process complete!")); diff --git a/MPF.Library/InfoTool.cs b/MPF.Library/InfoTool.cs index b2a70482..8dd46cfd 100644 --- a/MPF.Library/InfoTool.cs +++ b/MPF.Library/InfoTool.cs @@ -975,11 +975,11 @@ namespace MPF.Library /// Output folder to write to /// Preformatted list of lines to write out to the file /// True on success, false on error - public static bool WriteOutputData(string outputDirectory, List lines) + public static (bool, string) WriteOutputData(string outputDirectory, List lines) { // Check to see if the inputs are valid if (lines == null) - return false; + return (false, "No formatted data found to write!"); // Now write out to a generic file try @@ -987,16 +987,17 @@ namespace MPF.Library using (StreamWriter sw = new StreamWriter(File.Open(Path.Combine(outputDirectory, "!submissionInfo.txt"), FileMode.Create, FileAccess.Write))) { foreach (string line in lines) + { sw.WriteLine(line); + } } } catch (Exception ex) { - // We don't care what the error is right now - return false; + return (false, $"Writing could not complete: {ex}"); } - return true; + return (true, "Writing complete!"); } ///