From b591553c860dad40fca330c0e5e1af63e6b57764 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Mon, 6 Sep 2021 15:09:09 +0200 Subject: [PATCH] Add support for absolute paths to CreateContactSheet --- .../postprocessing/CreateContactSheet.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java b/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java index 951cac6c..3d8549e0 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/CreateContactSheet.java @@ -66,7 +66,10 @@ public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { color}, new StringBuffer(), null).toString(); File executionDir = rec.getPostProcessedFile().isDirectory() ? rec.getPostProcessedFile() : rec.getPostProcessedFile().getParentFile(); - File output = new File(executionDir, fillInPlaceHolders(filename, ctx)); + File output = getOutputFile(executionDir, filename, ctx); + if (!output.getParentFile().exists()) { + Files.createDirectories(output.toPath().getParent()); + } String[] args = { "-y", @@ -95,6 +98,17 @@ public class CreateContactSheet extends AbstractPlaceholderAwarePostProcessor { return true; } + private File getOutputFile(File executionDir, String filename, PostProcessingContext ctx) { + String finalFilename = fillInPlaceHolders(filename, ctx); + File output; + if (new File(finalFilename).isAbsolute()) { + output = new File(finalFilename); + } else { + output = new File(executionDir, finalFilename); + } + return output; + } + private Path createThumbnails(Recording rec, Config config) throws IOException, InterruptedException { Path tempDirectory = Files.createTempDirectory("ctbrec-contactsheet-" + rec.getModel().getSanitizedNamed()); File executionDir = rec.getPostProcessedFile().isDirectory() ? rec.getPostProcessedFile() : rec.getPostProcessedFile().getParentFile();