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!");
}
///