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