0
0
mirror of https://github.com/sp-tarkov/loot-dump-processor.git synced 2025-02-13 09:50:44 -05:00

40 lines
1.4 KiB
C#
Raw Normal View History

using Microsoft.Extensions.Logging;
2023-08-12 19:08:38 +01:00
namespace LootDumpProcessor.Process.Reader.PreProcess;
public abstract class AbstractPreProcessReader : IPreProcessReader
{
protected readonly string _tempFolder;
2023-08-12 19:08:38 +01:00
public AbstractPreProcessReader(ILogger logger)
2023-08-12 19:08:38 +01:00
{
var tempFolder = LootDumpProcessorContext.GetConfig().ReaderConfig.PreProcessorConfig?.PreProcessorTempFolder;
if (string.IsNullOrEmpty(tempFolder))
{
tempFolder = GetBaseDirectory();
logger.LogWarning(
"No temp folder was assigned preProcessorTempFolder in PreProcessorConfig, defaulting to {tempFolder}",
tempFolder
);
2023-08-12 19:08:38 +01:00
}
// Cleanup the temp directory before starting the process
if (Directory.Exists(tempFolder)) Directory.Delete(tempFolder, true);
2023-08-12 19:08:38 +01:00
Directory.CreateDirectory(tempFolder);
_tempFolder = tempFolder;
}
public abstract string GetHandleExtension();
public abstract bool TryPreProcess(string file, out List<string> files, out List<string> directories);
protected string GetBaseDirectory() =>
$@"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\SPT\tmp\PreProcessor";
2023-08-12 19:08:38 +01:00
public void Dispose()
{
if (LootDumpProcessorContext.GetConfig().ReaderConfig.PreProcessorConfig?.CleanupTempFolderAfterProcess ?? true)
Directory.Delete(_tempFolder, true);
}
}