diff --git a/CHANGELIST.md b/CHANGELIST.md
index 0d8e1923..2f4ed6df 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -138,6 +138,7 @@
- Fix missing info reference change
- Enable separated protection info output by default
- Try adding MPF logs to zip
+- Create MPF log helper and filter for deletion
### 2.3 (2022-02-05)
- Start overhauling Redump information pulling, again
diff --git a/MPF.Library/InfoTool.cs b/MPF.Library/InfoTool.cs
index d050b20e..7b39881e 100644
--- a/MPF.Library/InfoTool.cs
+++ b/MPF.Library/InfoTool.cs
@@ -588,14 +588,8 @@ namespace MPF.Library
var files = parameters.GetLogFilePaths(combinedBase);
// Add on generated log files if they exist
- if (File.Exists(Path.Combine(outputDirectory, "!submissionInfo.txt")))
- files.Add(Path.Combine(outputDirectory, "!submissionInfo.txt"));
- if (File.Exists(Path.Combine(outputDirectory, "!submissionInfo.json")))
- files.Add(Path.Combine(outputDirectory, "!submissionInfo.json"));
- if (File.Exists(Path.Combine(outputDirectory, "!submissionInfo.json.gz")))
- files.Add(Path.Combine(outputDirectory, "!submissionInfo.json.gz"));
- if (File.Exists(Path.Combine(outputDirectory, "!protectionInfo.txt")))
- files.Add(Path.Combine(outputDirectory, "!protectionInfo.txt"));
+ var mpfFiles = GetGeneratedFilePaths(outputDirectory);
+ files.AddRange(mpfFiles);
if (!files.Any())
return true;
@@ -621,6 +615,10 @@ namespace MPF.Library
string entryName = file.Substring(outputDirectory.Length).TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
zf.CreateEntryFromFile(file, entryName);
+ // If the file is MPF-specific, don't delete
+ if (mpfFiles.Contains(file))
+ continue;
+
try
{
File.Delete(file);
@@ -1154,6 +1152,27 @@ namespace MPF.Library
AddIfExists(output, key, string.Join(", ", value.Select(o => o.ToString())), indent);
}
+ ///
+ /// Generate a list of all MPF-specific log files generated
+ ///
+ /// Output folder to write to
+ /// List of all log file paths, empty otherwise
+ private static List GetGeneratedFilePaths(string outputDirectory)
+ {
+ List files = new List();
+
+ if (File.Exists(Path.Combine(outputDirectory, "!submissionInfo.txt")))
+ files.Add(Path.Combine(outputDirectory, "!submissionInfo.txt"));
+ if (File.Exists(Path.Combine(outputDirectory, "!submissionInfo.json")))
+ files.Add(Path.Combine(outputDirectory, "!submissionInfo.json"));
+ if (File.Exists(Path.Combine(outputDirectory, "!submissionInfo.json.gz")))
+ files.Add(Path.Combine(outputDirectory, "!submissionInfo.json.gz"));
+ if (File.Exists(Path.Combine(outputDirectory, "!protectionInfo.txt")))
+ files.Add(Path.Combine(outputDirectory, "!protectionInfo.txt"));
+
+ return files;
+ }
+
#endregion
#region Normalization