From dbcddd02e3fc10e09f6fd37e53e9f922438fcd57 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Fri, 7 Jun 2019 19:24:35 +0700 Subject: [PATCH] support custom groovy scripts (via files) --- source/net/filebot/cli/ArgumentBean.java | 9 +++++++-- source/net/filebot/cli/ScriptShellBaseClass.java | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/source/net/filebot/cli/ArgumentBean.java b/source/net/filebot/cli/ArgumentBean.java index ca657035..121baa95 100644 --- a/source/net/filebot/cli/ArgumentBean.java +++ b/source/net/filebot/cli/ArgumentBean.java @@ -232,17 +232,22 @@ public class ArgumentBean { return files; } - public RenameAction getRenameAction() { + public RenameAction getRenameAction() throws Exception { // support custom executables (via absolute path) if (action.startsWith("/")) { return new ExecutableRenameAction(action, getOutputPath()); } // support custom groovy scripts (via closures) - if (action.startsWith("{")) { + if (action.startsWith("{") || action.endsWith("}")) { return new GroovyRenameAction(action); } + // support custom groovy scripts (via files) + if (action.endsWith(".groovy")) { + return new GroovyRenameAction(readTextFile(new File(action))); + } + return StandardRenameAction.forName(action); } diff --git a/source/net/filebot/cli/ScriptShellBaseClass.java b/source/net/filebot/cli/ScriptShellBaseClass.java index 0b4d37e0..9c550326 100644 --- a/source/net/filebot/cli/ScriptShellBaseClass.java +++ b/source/net/filebot/cli/ScriptShellBaseClass.java @@ -512,7 +512,7 @@ public abstract class ScriptShellBaseClass extends Script { return map; } - private RenameAction getRenameAction(Map parameters) { + private RenameAction getRenameAction(Map parameters) throws Exception { return consumeParameter(parameters, "action").map(action -> { return getRenameAction(action); }).findFirst().orElse(getArgumentBean().getRenameAction()); // default to global rename action