Files
MKVAudioSubtitleChanger/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/LastExecutionHandler.java
2026-01-15 12:40:09 +01:00

57 lines
1.7 KiB
Java

package at.pcgamingfreaks.mkvaudiosubtitlechanger.impl;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.time.Instant;
import java.util.Properties;
@Slf4j
public class LastExecutionHandler {
private static final String FILE_NAME = "last-execution.properties";
private final File file;
private final Properties lastFileExecution;
public LastExecutionHandler(String path) {
file = new File(path + "/" + FILE_NAME);
lastFileExecution = loadLastFileExecution(file);
}
public Properties loadLastFileExecution(File file) {
Properties properties = new Properties();
try (FileInputStream in = new FileInputStream(file)) {
properties.load(in);
} catch (IOException e) {
log.info("Couldn't find or read {}", file.getPath(), e);
}
return properties;
}
public Instant get(String path) {
if (!lastFileExecution.containsKey(path)) return null;
return Instant.parse(lastFileExecution.getProperty(path));
}
public void update(String path) {
update(path, Instant.now());
}
public void update(String path, Instant execution) {
if (lastFileExecution == null) return;
lastFileExecution.put(path, execution.toString());
}
public void persist() {
try (FileOutputStream out = new FileOutputStream(file)) {
lastFileExecution.store(out, "MKVAudioSubtitleChanger - Last file execution");
} catch (IOException e) {
log.warn("Persisting last file execution dates failed", e);
}
}
}