From dba2c3229c5161589b556339ea853e286310cf81 Mon Sep 17 00:00:00 2001 From: MEFRREEX Date: Fri, 3 Jan 2025 10:26:53 +0200 Subject: [PATCH 01/10] refactor: moved script definition to eval method --- .../java/com/instancify/scriptify/api/script/Script.java | 2 +- build.gradle.kts | 2 +- .../src/main/java/com/instancify/scriptify/Test.java | 8 ++++---- .../java/com/instancify/scriptify/script/JsScript.java | 9 ++------- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/api/src/main/java/com/instancify/scriptify/api/script/Script.java b/api/src/main/java/com/instancify/scriptify/api/script/Script.java index 507acd2..cf0333d 100644 --- a/api/src/main/java/com/instancify/scriptify/api/script/Script.java +++ b/api/src/main/java/com/instancify/scriptify/api/script/Script.java @@ -43,5 +43,5 @@ public interface Script { /** * Evaluates and executes this script. */ - void eval(); + void eval(String script); } diff --git a/build.gradle.kts b/build.gradle.kts index bc86f42..92044a7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ java { allprojects { group = "com.instancify.scriptify" - version = "1.0.3-SNAPSHOT" + version = "1.1.0-SNAPSHOT" } subprojects { diff --git a/script-js/src/main/java/com/instancify/scriptify/Test.java b/script-js/src/main/java/com/instancify/scriptify/Test.java index 2b3e221..8c30bae 100644 --- a/script-js/src/main/java/com/instancify/scriptify/Test.java +++ b/script-js/src/main/java/com/instancify/scriptify/Test.java @@ -7,9 +7,7 @@ public class Test { public static void main(String[] args) { - JsScript script = new JsScript(""" - print(shuffleArray(["a", "b", "c"])) - """); + JsScript script = new JsScript(); StandardFunctionManager functionManager = new StandardFunctionManager(); StandardConstantManager constantManager = new StandardConstantManager(); @@ -17,6 +15,8 @@ public static void main(String[] args) { script.setFunctionManager(functionManager); script.setConstantManager(constantManager); - script.eval(); + script.eval(""" + print(execCommand("java --version")) + """); } } diff --git a/script-js/src/main/java/com/instancify/scriptify/script/JsScript.java b/script-js/src/main/java/com/instancify/scriptify/script/JsScript.java index 56e30a4..0cccc38 100644 --- a/script-js/src/main/java/com/instancify/scriptify/script/JsScript.java +++ b/script-js/src/main/java/com/instancify/scriptify/script/JsScript.java @@ -9,16 +9,11 @@ public class JsScript implements Script { - private final String scriptString; private final Context context = Context.enter(); private final ScriptableObject scope = context.initStandardObjects(); private ScriptFunctionManager functionManager; private ScriptConstantManager constantManager; - public JsScript(String scriptString) { - this.scriptString = scriptString; - } - @Override public ScriptFunctionManager getFunctionManager() { return functionManager; @@ -40,13 +35,13 @@ public void setConstantManager(ScriptConstantManager constantManager) { } @Override - public void eval() { + public void eval(String script) { for(ScriptFunction function : functionManager.getFunctions().values()) { scope.put(function.getName(), scope, new JsFunction(function)); } for(ScriptConstant constant : constantManager.getConstants().values()) { ScriptableObject.putConstProperty(scope, constant.getName(), constant.getValue()); } - context.evaluateString(scope, scriptString, null, 1, null); + context.evaluateString(scope, script, null, 1, null); } } From a475f8fba5ab3f87d2448a039290332650f837ec Mon Sep 17 00:00:00 2001 From: Koshak_Mine <52908036+KoshakMineDEV@users.noreply.github.com> Date: Fri, 3 Jan 2025 11:36:33 +0300 Subject: [PATCH 02/10] feat: constants --- .../constant/StandardConstantManager.java | 7 +++++++ .../constant/impl/ScriptConstantBaseDir.java | 21 +++++++++++++++++++ .../constant/impl/ScriptConstantOsName.java | 19 +++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 core/src/main/java/com/instancify/scriptify/core/script/constant/impl/ScriptConstantBaseDir.java create mode 100644 core/src/main/java/com/instancify/scriptify/core/script/constant/impl/ScriptConstantOsName.java diff --git a/core/src/main/java/com/instancify/scriptify/core/script/constant/StandardConstantManager.java b/core/src/main/java/com/instancify/scriptify/core/script/constant/StandardConstantManager.java index a2fd6b0..2b60917 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/constant/StandardConstantManager.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/constant/StandardConstantManager.java @@ -2,6 +2,8 @@ import com.instancify.scriptify.api.script.constant.ScriptConstant; import com.instancify.scriptify.api.script.constant.ScriptConstantManager; +import com.instancify.scriptify.core.script.constant.impl.ScriptConstantBaseDir; +import com.instancify.scriptify.core.script.constant.impl.ScriptConstantOsName; import java.util.HashMap; import java.util.Map; @@ -10,6 +12,11 @@ public class StandardConstantManager implements ScriptConstantManager { private final Map constants = new HashMap<>(); + public StandardConstantManager() { + register(new ScriptConstantOsName()); + register(new ScriptConstantBaseDir()); + } + @Override public Map getConstants() { return constants; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/constant/impl/ScriptConstantBaseDir.java b/core/src/main/java/com/instancify/scriptify/core/script/constant/impl/ScriptConstantBaseDir.java new file mode 100644 index 0000000..c43d6d3 --- /dev/null +++ b/core/src/main/java/com/instancify/scriptify/core/script/constant/impl/ScriptConstantBaseDir.java @@ -0,0 +1,21 @@ +package com.instancify.scriptify.core.script.constant.impl; + +import com.instancify.scriptify.api.script.constant.ScriptConstant; + +import java.nio.file.Paths; + +/** + * Represents a constant with base dir + */ +public class ScriptConstantBaseDir implements ScriptConstant { + + @Override + public String getName() { + return "baseDir"; + } + + @Override + public Object getValue() { + return Paths.get("").toAbsolutePath().toString(); + } +} diff --git a/core/src/main/java/com/instancify/scriptify/core/script/constant/impl/ScriptConstantOsName.java b/core/src/main/java/com/instancify/scriptify/core/script/constant/impl/ScriptConstantOsName.java new file mode 100644 index 0000000..1786fc8 --- /dev/null +++ b/core/src/main/java/com/instancify/scriptify/core/script/constant/impl/ScriptConstantOsName.java @@ -0,0 +1,19 @@ +package com.instancify.scriptify.core.script.constant.impl; + +import com.instancify.scriptify.api.script.constant.ScriptConstant; + +/** + * Represents a constant with os name + */ +public class ScriptConstantOsName implements ScriptConstant { + + @Override + public String getName() { + return "osName"; + } + + @Override + public Object getValue() { + return System.getProperty("os.name"); + } +} From 4ee54ad03d98c5f63fe676058e03b016013cbcb6 Mon Sep 17 00:00:00 2001 From: MEFRREEX Date: Fri, 3 Jan 2025 10:39:11 +0200 Subject: [PATCH 03/10] refactor: packages --- build.gradle.kts | 2 +- .../core/script/function/StandardFunctionManager.java | 5 +++++ .../impl/{ => crypto}/ScriptFunctionBase64Decode.java | 2 +- .../impl/{ => crypto}/ScriptFunctionBase64Encode.java | 2 +- .../script/function/impl/{ => crypto}/ScriptFunctionMD5.java | 2 +- .../function/impl/{ => crypto}/ScriptFunctionSHA256.java | 2 +- .../function/impl/{ => file}/ScriptFunctionDeleteFile.java | 2 +- .../impl/{ => file}/ScriptFunctionDownloadFromUrl.java | 2 +- .../function/impl/{ => file}/ScriptFunctionExistsFile.java | 2 +- .../function/impl/{ => file}/ScriptFunctionJoinPath.java | 2 +- .../function/impl/{ => file}/ScriptFunctionListFiles.java | 2 +- .../function/impl/{ => file}/ScriptFunctionMoveFile.java | 2 +- .../function/impl/{ => file}/ScriptFunctionReadFile.java | 2 +- .../function/impl/{ => file}/ScriptFunctionWriteFile.java | 2 +- .../function/impl/{ => os}/ScriptFunctionExecCommand.java | 2 +- .../impl/{ => random}/ScriptFunctionRandomDouble.java | 2 +- .../impl/{ => random}/ScriptFunctionRandomFloat.java | 2 +- .../impl/{ => random}/ScriptFunctionRandomInteger.java | 2 +- .../function/impl/{ => random}/ScriptFunctionRandomLong.java | 2 +- .../function/impl/{ => random}/ScriptFunctionRandomUUID.java | 2 +- .../impl/{ => zip}/ScriptFunctionSmartUnzipFile.java | 2 +- .../function/impl/{ => zip}/ScriptFunctionSmartZipFile.java | 2 +- .../function/impl/{ => zip}/ScriptFunctionUnzipFile.java | 2 +- .../function/impl/{ => zip}/ScriptFunctionZipFile.java | 2 +- 24 files changed, 28 insertions(+), 23 deletions(-) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => crypto}/ScriptFunctionBase64Decode.java (93%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => crypto}/ScriptFunctionBase64Encode.java (93%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => crypto}/ScriptFunctionMD5.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => crypto}/ScriptFunctionSHA256.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => file}/ScriptFunctionDeleteFile.java (97%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => file}/ScriptFunctionDownloadFromUrl.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => file}/ScriptFunctionExistsFile.java (94%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => file}/ScriptFunctionJoinPath.java (93%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => file}/ScriptFunctionListFiles.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => file}/ScriptFunctionMoveFile.java (94%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => file}/ScriptFunctionReadFile.java (94%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => file}/ScriptFunctionWriteFile.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => os}/ScriptFunctionExecCommand.java (96%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => random}/ScriptFunctionRandomDouble.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => random}/ScriptFunctionRandomFloat.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => random}/ScriptFunctionRandomInteger.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => random}/ScriptFunctionRandomLong.java (95%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => random}/ScriptFunctionRandomUUID.java (88%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => zip}/ScriptFunctionSmartUnzipFile.java (98%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => zip}/ScriptFunctionSmartZipFile.java (98%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => zip}/ScriptFunctionUnzipFile.java (98%) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/{ => zip}/ScriptFunctionZipFile.java (97%) diff --git a/build.gradle.kts b/build.gradle.kts index 92044a7..63fa37e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ java { allprojects { group = "com.instancify.scriptify" - version = "1.1.0-SNAPSHOT" + version = "1.1.1-SNAPSHOT" } subprojects { diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java b/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java index 79db3dc..f91caaa 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java @@ -3,6 +3,11 @@ import com.instancify.scriptify.api.script.function.ScriptFunction; import com.instancify.scriptify.api.script.function.ScriptFunctionManager; import com.instancify.scriptify.core.script.function.impl.*; +import com.instancify.scriptify.core.script.function.impl.crypto.*; +import com.instancify.scriptify.core.script.function.impl.file.*; +import com.instancify.scriptify.core.script.function.impl.os.*; +import com.instancify.scriptify.core.script.function.impl.random.*; +import com.instancify.scriptify.core.script.function.impl.zip.*; import java.util.HashMap; import java.util.Map; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionBase64Decode.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Decode.java similarity index 93% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionBase64Decode.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Decode.java index 274854d..a7cb874 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionBase64Decode.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Decode.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.crypto; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionBase64Encode.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Encode.java similarity index 93% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionBase64Encode.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Encode.java index c8fa827..facb8ed 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionBase64Encode.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Encode.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.crypto; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionMD5.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionMD5.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionMD5.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionMD5.java index 2a708b3..49d6b39 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionMD5.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionMD5.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.crypto; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSHA256.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionSHA256.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSHA256.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionSHA256.java index 12573eb..5252004 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSHA256.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionSHA256.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.crypto; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionDeleteFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java similarity index 97% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionDeleteFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java index 28db796..c32bef6 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionDeleteFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.file; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionDownloadFromUrl.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDownloadFromUrl.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionDownloadFromUrl.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDownloadFromUrl.java index 6fd1d7d..7a5dca4 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionDownloadFromUrl.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDownloadFromUrl.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.file; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionExistsFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionExistsFile.java similarity index 94% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionExistsFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionExistsFile.java index bb89641..f82d3a2 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionExistsFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionExistsFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.file; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionJoinPath.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionJoinPath.java similarity index 93% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionJoinPath.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionJoinPath.java index 1b6c267..20780cf 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionJoinPath.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionJoinPath.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.file; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionListFiles.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionListFiles.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java index 34da5a9..7e083b9 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionListFiles.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.file; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionMoveFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionMoveFile.java similarity index 94% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionMoveFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionMoveFile.java index 0c2c96d..19d3843 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionMoveFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionMoveFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.file; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionReadFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionReadFile.java similarity index 94% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionReadFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionReadFile.java index 0a9e649..47fc2f3 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionReadFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionReadFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.file; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionWriteFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionWriteFile.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionWriteFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionWriteFile.java index 1d4e017..219fa98 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionWriteFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionWriteFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.file; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionExecCommand.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionExecCommand.java similarity index 96% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionExecCommand.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionExecCommand.java index d4778d1..0fc8703 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionExecCommand.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionExecCommand.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.os; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomDouble.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomDouble.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomDouble.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomDouble.java index 7f66c88..b7bf79f 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomDouble.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomDouble.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.random; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomFloat.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomFloat.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomFloat.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomFloat.java index 9eea3d1..df48968 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomFloat.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomFloat.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.random; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomInteger.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomInteger.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomInteger.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomInteger.java index 2d612b0..40c58d6 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomInteger.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomInteger.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.random; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomLong.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomLong.java similarity index 95% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomLong.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomLong.java index 865616c..6b6247b 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomLong.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomLong.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.random; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomUUID.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomUUID.java similarity index 88% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomUUID.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomUUID.java index 399964e..f4f1186 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionRandomUUID.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomUUID.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.random; import com.instancify.scriptify.api.exception.ScriptFunctionException; import com.instancify.scriptify.api.script.function.ScriptFunction; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSmartUnzipFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartUnzipFile.java similarity index 98% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSmartUnzipFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartUnzipFile.java index ba4d219..b9ffbde 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSmartUnzipFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartUnzipFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.zip; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSmartZipFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartZipFile.java similarity index 98% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSmartZipFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartZipFile.java index 29c70be..70a6474 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionSmartZipFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartZipFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.zip; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionUnzipFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionUnzipFile.java similarity index 98% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionUnzipFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionUnzipFile.java index 42c85c9..b89e397 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionUnzipFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionUnzipFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.zip; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionZipFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionZipFile.java similarity index 97% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionZipFile.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionZipFile.java index 8c8209d..3feca2c 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionZipFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionZipFile.java @@ -1,4 +1,4 @@ -package com.instancify.scriptify.core.script.function.impl; +package com.instancify.scriptify.core.script.function.impl.zip; import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; From 41bb77baa79e1911a638203fe019f4aacd38a237 Mon Sep 17 00:00:00 2001 From: Koshak_Mine <52908036+KoshakMineDEV@users.noreply.github.com> Date: Fri, 3 Jan 2025 11:40:25 +0300 Subject: [PATCH 04/10] fix: styling --- .../core/script/constant/StandardConstantManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/instancify/scriptify/core/script/constant/StandardConstantManager.java b/core/src/main/java/com/instancify/scriptify/core/script/constant/StandardConstantManager.java index 2b60917..f3356b9 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/constant/StandardConstantManager.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/constant/StandardConstantManager.java @@ -13,8 +13,8 @@ public class StandardConstantManager implements ScriptConstantManager { private final Map constants = new HashMap<>(); public StandardConstantManager() { - register(new ScriptConstantOsName()); - register(new ScriptConstantBaseDir()); + this.register(new ScriptConstantOsName()); + this.register(new ScriptConstantBaseDir()); } @Override From ae473dfd2901b6e4809532bd3608b5ca9def03b0 Mon Sep 17 00:00:00 2001 From: MEFRREEX Date: Fri, 3 Jan 2025 10:40:39 +0200 Subject: [PATCH 05/10] feat: added ScriptFunctionGetEnv function --- build.gradle.kts | 2 +- .../function/StandardFunctionManager.java | 1 + .../impl/os/ScriptFunctionGetEnv.java | 30 +++++++++++++++++++ .../java/com/instancify/scriptify/Test.java | 2 +- 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java diff --git a/build.gradle.kts b/build.gradle.kts index 63fa37e..4a8d6a2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ java { allprojects { group = "com.instancify.scriptify" - version = "1.1.1-SNAPSHOT" + version = "1.1.2-SNAPSHOT" } subprojects { diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java b/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java index f91caaa..04a475e 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java @@ -40,6 +40,7 @@ public StandardFunctionManager() { this.register(new ScriptFunctionMD5()); this.register(new ScriptFunctionSHA256()); this.register(new ScriptFunctionExecCommand()); + this.register(new ScriptFunctionGetEnv()); this.register(new ScriptFunctionShuffleArray()); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java new file mode 100644 index 0000000..4367e5f --- /dev/null +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java @@ -0,0 +1,30 @@ +package com.instancify.scriptify.core.script.function.impl.os; + +import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; +import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; +import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.function.ScriptFunction; + +/** + * Represents a function to get environment variable value + */ +public class ScriptFunctionGetEnv implements ScriptFunction { + + @Override + public String getName() { + return "env"; + } + + @Override + public Object invoke(Object[] args) throws ScriptFunctionException { + if (args.length != 1) { + throw new ScriptFunctionArgsCountException(1, args.length); + } + + if (!(args[0] instanceof String name)) { + throw new ScriptFunctionArgTypeException(String.class, args[0].getClass()); + } + + return System.getenv(name); + } +} diff --git a/script-js/src/main/java/com/instancify/scriptify/Test.java b/script-js/src/main/java/com/instancify/scriptify/Test.java index 8c30bae..229deac 100644 --- a/script-js/src/main/java/com/instancify/scriptify/Test.java +++ b/script-js/src/main/java/com/instancify/scriptify/Test.java @@ -16,7 +16,7 @@ public static void main(String[] args) { script.setFunctionManager(functionManager); script.setConstantManager(constantManager); script.eval(""" - print(execCommand("java --version")) + print(getEnv("JAVA_HOME")) """); } } From 64e85ccbcbfe0b46f88441be5b5ba2101ad5194f Mon Sep 17 00:00:00 2001 From: MEFRREEX Date: Fri, 3 Jan 2025 10:51:09 +0200 Subject: [PATCH 06/10] feat: added script parameter to invoke method in ScriptFunction --- .../api/script/function/ScriptFunction.java | 4 +++- .../function/impl/ScriptFunctionPrint.java | 3 ++- .../impl/ScriptFunctionShuffleArray.java | 3 ++- .../crypto/ScriptFunctionBase64Decode.java | 3 ++- .../crypto/ScriptFunctionBase64Encode.java | 3 ++- .../impl/crypto/ScriptFunctionMD5.java | 3 ++- .../impl/crypto/ScriptFunctionSHA256.java | 3 ++- .../impl/file/ScriptFunctionDeleteFile.java | 3 ++- .../file/ScriptFunctionDownloadFromUrl.java | 3 ++- .../impl/file/ScriptFunctionExistsFile.java | 3 ++- .../impl/file/ScriptFunctionJoinPath.java | 9 +++++---- .../impl/file/ScriptFunctionListFiles.java | 3 ++- .../impl/file/ScriptFunctionMoveFile.java | 7 +++---- .../impl/file/ScriptFunctionReadFile.java | 3 ++- .../impl/file/ScriptFunctionWriteFile.java | 3 ++- .../impl/os/ScriptFunctionExecCommand.java | 3 ++- .../function/impl/os/ScriptFunctionGetEnv.java | 3 ++- .../random/ScriptFunctionRandomDouble.java | 18 ++++++++---------- .../impl/random/ScriptFunctionRandomFloat.java | 18 ++++++++---------- .../random/ScriptFunctionRandomInteger.java | 18 ++++++++---------- .../impl/random/ScriptFunctionRandomLong.java | 18 ++++++++---------- .../impl/random/ScriptFunctionRandomUUID.java | 3 ++- .../impl/zip/ScriptFunctionSmartUnzipFile.java | 3 ++- .../impl/zip/ScriptFunctionSmartZipFile.java | 3 ++- .../impl/zip/ScriptFunctionUnzipFile.java | 3 ++- .../impl/zip/ScriptFunctionZipFile.java | 3 ++- .../scriptify/script/JsFunction.java | 8 +++++--- .../instancify/scriptify/script/JsScript.java | 2 +- 28 files changed, 87 insertions(+), 72 deletions(-) diff --git a/api/src/main/java/com/instancify/scriptify/api/script/function/ScriptFunction.java b/api/src/main/java/com/instancify/scriptify/api/script/function/ScriptFunction.java index dbddcc5..cb746c0 100644 --- a/api/src/main/java/com/instancify/scriptify/api/script/function/ScriptFunction.java +++ b/api/src/main/java/com/instancify/scriptify/api/script/function/ScriptFunction.java @@ -1,6 +1,7 @@ package com.instancify.scriptify.api.script.function; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; /** * Represents a function that can be used within scripts. @@ -17,9 +18,10 @@ public interface ScriptFunction { /** * Invokes the function with the provided arguments. * + * @param script The script in which the function will be invoked * @param args The arguments to pass to the function * @return The result of the function execution * @throws ScriptFunctionException If there's an error during invocation */ - Object invoke(Object[] args) throws ScriptFunctionException; + Object invoke(Script script, Object[] args) throws ScriptFunctionException; } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionPrint.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionPrint.java index 907425c..d9c7888 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionPrint.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionPrint.java @@ -1,5 +1,6 @@ package com.instancify.scriptify.core.script.function.impl; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.util.Arrays; @@ -16,7 +17,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) { + public Object invoke(Script script, Object[] args) { System.out.println(Arrays.stream(args).map(String::valueOf).collect(Collectors.joining(" "))); return null; } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionShuffleArray.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionShuffleArray.java index dd56a6a..f00770d 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionShuffleArray.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/ScriptFunctionShuffleArray.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import org.mozilla.javascript.NativeArray; @@ -21,7 +22,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 1) { throw new ScriptFunctionArgsCountException(1, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Decode.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Decode.java index a7cb874..670a32e 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Decode.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Decode.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.nio.charset.StandardCharsets; @@ -18,7 +19,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 1) { throw new ScriptFunctionArgsCountException(1, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Encode.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Encode.java index facb8ed..425d431 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Encode.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionBase64Encode.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.util.Base64; @@ -17,7 +18,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 1) { throw new ScriptFunctionArgsCountException(1, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionMD5.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionMD5.java index 49d6b39..5a1dd0e 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionMD5.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionMD5.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.math.BigInteger; @@ -20,7 +21,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 1) { throw new ScriptFunctionArgsCountException(1, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionSHA256.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionSHA256.java index 5252004..ce14e97 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionSHA256.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/crypto/ScriptFunctionSHA256.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.math.BigInteger; @@ -20,7 +21,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 1) { throw new ScriptFunctionArgsCountException(1, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java index c32bef6..1ee997e 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; @@ -19,7 +20,7 @@ public String getName() { // TODO refactor it @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length == 1) { if (args[0] instanceof String filePath) { try { diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDownloadFromUrl.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDownloadFromUrl.java index 7a5dca4..8f1e226 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDownloadFromUrl.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDownloadFromUrl.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; @@ -22,7 +23,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 2) { throw new ScriptFunctionArgsCountException(2, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionExistsFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionExistsFile.java index f82d3a2..d6b55fe 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionExistsFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionExistsFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.nio.file.Files; @@ -19,7 +20,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length == 1) { if (args[0] instanceof String filePath) { return Files.exists(Path.of(filePath)); diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionJoinPath.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionJoinPath.java index 20780cf..abb45a8 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionJoinPath.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionJoinPath.java @@ -2,6 +2,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; /** @@ -15,11 +16,11 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { String path = ""; - for(int i = 0; i < args.length; i++) { - if(args[i] instanceof String segment) { - if(path.isEmpty()) { + for (Object arg : args) { + if (arg instanceof String segment) { + if (path.isEmpty()) { path += segment; } else { path += '/' + segment; diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java index 7e083b9..41b60aa 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; @@ -19,7 +20,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length == 1) { if (args[0] instanceof String filePath) { File folder = new File(filePath); diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionMoveFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionMoveFile.java index 19d3843..c6c4149 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionMoveFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionMoveFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; @@ -18,7 +19,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 2) { throw new ScriptFunctionArgsCountException(2, args.length); } @@ -31,8 +32,6 @@ public Object invoke(Object[] args) throws ScriptFunctionException { } File fileToMove = new File(originalFilePath); - fileToMove.renameTo(new File(targetFilePath)); - - return null; + return fileToMove.renameTo(new File(targetFilePath)); } } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionReadFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionReadFile.java index 47fc2f3..73d4d25 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionReadFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionReadFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.IOException; @@ -20,7 +21,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length == 1) { if (args[0] instanceof String filePath) { try { diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionWriteFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionWriteFile.java index 219fa98..7f479b9 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionWriteFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionWriteFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.IOException; @@ -20,7 +21,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length == 2) { if (args[0] instanceof String filePath && args[1] instanceof String fileContent) { try { diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionExecCommand.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionExecCommand.java index 0fc8703..039942f 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionExecCommand.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionExecCommand.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.BufferedReader; @@ -20,7 +21,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 1) { throw new ScriptFunctionArgsCountException(1, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java index 4367e5f..0f6b4f0 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; /** @@ -16,7 +17,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 1) { throw new ScriptFunctionArgsCountException(1, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomDouble.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomDouble.java index b7bf79f..1d83bac 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomDouble.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomDouble.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.util.Random; @@ -18,7 +19,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { Random random = new Random(); if(args.length > 2 || args.length < 1) throw new ScriptFunctionArgsCountException(1, args.length); @@ -30,17 +31,14 @@ public Object invoke(Object[] args) throws ScriptFunctionException { } } - if(args.length == 2) { - if(args[0] instanceof Number min) { - if(args[1] instanceof Number max) { - return random.nextDouble(max.doubleValue() - min.doubleValue()) + min.doubleValue(); - } else { - throw new ScriptFunctionArgTypeException(Number.class, args[1].getClass()); - } + if (args[0] instanceof Number min) { + if (args[1] instanceof Number max) { + return random.nextDouble(max.doubleValue() - min.doubleValue()) + min.doubleValue(); } else { - throw new ScriptFunctionArgTypeException(Number.class, args[0].getClass()); + throw new ScriptFunctionArgTypeException(Number.class, args[1].getClass()); } + } else { + throw new ScriptFunctionArgTypeException(Number.class, args[0].getClass()); } - return null; } } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomFloat.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomFloat.java index df48968..67ac516 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomFloat.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomFloat.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.util.Random; @@ -18,7 +19,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { Random random = new Random(); if(args.length > 2 || args.length < 1) throw new ScriptFunctionArgsCountException(1, args.length); @@ -30,17 +31,14 @@ public Object invoke(Object[] args) throws ScriptFunctionException { } } - if(args.length == 2) { - if(args[0] instanceof Number min) { - if(args[1] instanceof Number max) { - return random.nextFloat(max.floatValue() - min.floatValue()) + min.floatValue(); - } else { - throw new ScriptFunctionArgTypeException(Number.class, args[1].getClass()); - } + if (args[0] instanceof Number min) { + if (args[1] instanceof Number max) { + return random.nextFloat(max.floatValue() - min.floatValue()) + min.floatValue(); } else { - throw new ScriptFunctionArgTypeException(Number.class, args[0].getClass()); + throw new ScriptFunctionArgTypeException(Number.class, args[1].getClass()); } + } else { + throw new ScriptFunctionArgTypeException(Number.class, args[0].getClass()); } - return null; } } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomInteger.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomInteger.java index 40c58d6..bfec849 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomInteger.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomInteger.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.util.Random; @@ -18,7 +19,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { Random random = new Random(); if(args.length > 2 || args.length < 1) throw new ScriptFunctionArgsCountException(1, args.length); @@ -30,17 +31,14 @@ public Object invoke(Object[] args) throws ScriptFunctionException { } } - if(args.length == 2) { - if(args[0] instanceof Number min) { - if(args[1] instanceof Number max) { - return random.nextInt(max.intValue() - min.intValue()) + min.intValue(); - } else { - throw new ScriptFunctionArgTypeException(Number.class, args[1].getClass()); - } + if (args[0] instanceof Number min) { + if (args[1] instanceof Number max) { + return random.nextInt(max.intValue() - min.intValue()) + min.intValue(); } else { - throw new ScriptFunctionArgTypeException(Number.class, args[0].getClass()); + throw new ScriptFunctionArgTypeException(Number.class, args[1].getClass()); } + } else { + throw new ScriptFunctionArgTypeException(Number.class, args[0].getClass()); } - return null; } } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomLong.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomLong.java index 6b6247b..9fc8d88 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomLong.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomLong.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.util.Random; @@ -18,7 +19,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { Random random = new Random(); if(args.length > 2 || args.length < 1) throw new ScriptFunctionArgsCountException(1, args.length); @@ -30,17 +31,14 @@ public Object invoke(Object[] args) throws ScriptFunctionException { } } - if(args.length == 2) { - if(args[0] instanceof Number min) { - if(args[1] instanceof Number max) { - return random.nextLong(max.longValue() - min.longValue()) + min.longValue(); - } else { - throw new ScriptFunctionArgTypeException(Number.class, args[1].getClass()); - } + if (args[0] instanceof Number min) { + if (args[1] instanceof Number max) { + return random.nextLong(max.longValue() - min.longValue()) + min.longValue(); } else { - throw new ScriptFunctionArgTypeException(Number.class, args[0].getClass()); + throw new ScriptFunctionArgTypeException(Number.class, args[1].getClass()); } + } else { + throw new ScriptFunctionArgTypeException(Number.class, args[0].getClass()); } - return null; } } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomUUID.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomUUID.java index f4f1186..8329e12 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomUUID.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/random/ScriptFunctionRandomUUID.java @@ -1,6 +1,7 @@ package com.instancify.scriptify.core.script.function.impl.random; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.util.UUID; @@ -16,7 +17,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { return UUID.randomUUID().toString(); } } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartUnzipFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartUnzipFile.java index b9ffbde..8c275aa 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartUnzipFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartUnzipFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; @@ -25,7 +26,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 3) { throw new ScriptFunctionArgsCountException(3, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartZipFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartZipFile.java index 70a6474..6576949 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartZipFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionSmartZipFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; @@ -25,7 +26,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 3) { throw new ScriptFunctionArgsCountException(3, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionUnzipFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionUnzipFile.java index b89e397..65333f7 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionUnzipFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionUnzipFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; @@ -23,7 +24,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 2) { throw new ScriptFunctionArgsCountException(2, args.length); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionZipFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionZipFile.java index 3feca2c..c41026e 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionZipFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/zip/ScriptFunctionZipFile.java @@ -3,6 +3,7 @@ import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException; import com.instancify.scriptify.api.exception.ScriptFunctionArgsCountException; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; @@ -23,7 +24,7 @@ public String getName() { } @Override - public Object invoke(Object[] args) throws ScriptFunctionException { + public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length != 2) { throw new ScriptFunctionArgsCountException(2, args.length); } diff --git a/script-js/src/main/java/com/instancify/scriptify/script/JsFunction.java b/script-js/src/main/java/com/instancify/scriptify/script/JsFunction.java index b63e67f..991dc38 100644 --- a/script-js/src/main/java/com/instancify/scriptify/script/JsFunction.java +++ b/script-js/src/main/java/com/instancify/scriptify/script/JsFunction.java @@ -1,24 +1,26 @@ package com.instancify.scriptify.script; import com.instancify.scriptify.api.exception.ScriptFunctionException; +import com.instancify.scriptify.api.script.Script; import com.instancify.scriptify.api.script.function.ScriptFunction; import org.mozilla.javascript.Context; import org.mozilla.javascript.Function; import org.mozilla.javascript.Scriptable; -import org.mozilla.javascript.Undefined; public class JsFunction implements Function { + private final Script script; private final ScriptFunction function; - public JsFunction(final ScriptFunction function) { + public JsFunction(Script script, final ScriptFunction function) { + this.script = script; this.function = function; } @Override public Object call(Context context, Scriptable scriptable, Scriptable scriptable1, Object[] objects) { try { - return function.invoke(objects); + return function.invoke(script, objects); } catch (ScriptFunctionException e) { throw new RuntimeException(e); } diff --git a/script-js/src/main/java/com/instancify/scriptify/script/JsScript.java b/script-js/src/main/java/com/instancify/scriptify/script/JsScript.java index 0cccc38..a967b16 100644 --- a/script-js/src/main/java/com/instancify/scriptify/script/JsScript.java +++ b/script-js/src/main/java/com/instancify/scriptify/script/JsScript.java @@ -37,7 +37,7 @@ public void setConstantManager(ScriptConstantManager constantManager) { @Override public void eval(String script) { for(ScriptFunction function : functionManager.getFunctions().values()) { - scope.put(function.getName(), scope, new JsFunction(function)); + scope.put(function.getName(), scope, new JsFunction(this, function)); } for(ScriptConstant constant : constantManager.getConstants().values()) { ScriptableObject.putConstProperty(scope, constant.getName(), constant.getValue()); From 35aea12288b192fe5beaccb372caa8ad4d716a5a Mon Sep 17 00:00:00 2001 From: MEFRREEX Date: Fri, 3 Jan 2025 10:51:26 +0200 Subject: [PATCH 07/10] chore: update version --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 4a8d6a2..84f8e5a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ java { allprojects { group = "com.instancify.scriptify" - version = "1.1.2-SNAPSHOT" + version = "1.1.3-SNAPSHOT" } subprojects { From b209b656419a79370efe53bcd8b6ce2af66cec90 Mon Sep 17 00:00:00 2001 From: Koshak_Mine <52908036+KoshakMineDEV@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:00:08 +0300 Subject: [PATCH 08/10] refactor: ScriptFunctionDeleteFile --- .../impl/file/ScriptFunctionDeleteFile.java | 55 +++++++++---------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java index 1ee997e..456559b 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionDeleteFile.java @@ -7,6 +7,7 @@ import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; +import java.util.List; /** * Represents a function to delete a file in the normal or recursive way @@ -18,41 +19,37 @@ public String getName() { return "deleteFile"; } - // TODO refactor it @Override public Object invoke(Script script, Object[] args) throws ScriptFunctionException { + if (args.length > 2 || args.length < 1) { + throw new ScriptFunctionArgsCountException(1, args.length); + } + if (!(args[0] instanceof String filePath)) { + throw new ScriptFunctionArgTypeException(String.class, args[0].getClass()); + } + if (args.length == 1) { - if (args[0] instanceof String filePath) { - try { - return new File(filePath).delete(); - } catch (Exception e) { - return null; - } - } else { - throw new ScriptFunctionArgTypeException(String.class, args[0].getClass()); + try { + return new File(filePath).delete(); + } catch (Exception e) { + return null; } - } else if (args.length == 2) { - if (args[0] instanceof String filePath) { - if (args[1] instanceof Boolean recursive) { - try { - File file = new File(filePath); - if (recursive) { - deleteDirectoryRecursively(file); - return null; - } else { - return file.delete(); - } - } catch (Exception e) { - return null; - } - } else { - throw new ScriptFunctionArgTypeException(Boolean.class, args[1].getClass()); - } + } + + if (!(args[1] instanceof Boolean recursive)) { + throw new ScriptFunctionArgTypeException(Boolean.class, args[1].getClass()); + } + + try { + File file = new File(filePath); + if (recursive) { + deleteDirectoryRecursively(file); + return null; } else { - throw new ScriptFunctionArgTypeException(String.class, args[0].getClass()); + return file.delete(); } - } else { - throw new ScriptFunctionArgsCountException(1, args.length); + } catch (Exception e) { + return null; } } From 0f06efabf2a57496e1ec32b4d82069122b944b6f Mon Sep 17 00:00:00 2001 From: Koshak_Mine <52908036+KoshakMineDEV@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:17:27 +0300 Subject: [PATCH 09/10] fix: ScriptFunctionListFiles --- .../script/function/impl/file/ScriptFunctionListFiles.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java index 41b60aa..f87119c 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/file/ScriptFunctionListFiles.java @@ -7,6 +7,7 @@ import com.instancify.scriptify.api.script.function.ScriptFunction; import java.io.File; +import java.nio.file.Paths; import java.util.Arrays; /** @@ -23,7 +24,7 @@ public String getName() { public Object invoke(Script script, Object[] args) throws ScriptFunctionException { if (args.length == 1) { if (args[0] instanceof String filePath) { - File folder = new File(filePath); + File folder = Paths.get(filePath).toAbsolutePath().toFile(); if (folder.isDirectory()) { return Arrays.stream(folder.listFiles()).map(File::getAbsolutePath).toList(); } else { @@ -36,4 +37,4 @@ public Object invoke(Script script, Object[] args) throws ScriptFunctionExceptio throw new ScriptFunctionArgsCountException(1, args.length); } } -} +} \ No newline at end of file From 54bf8330e26796699001ae6e6fd44ca77c2ae2b8 Mon Sep 17 00:00:00 2001 From: Koshak_Mine <52908036+KoshakMineDEV@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:27:01 +0300 Subject: [PATCH 10/10] fix: env --- .../scriptify/core/script/function/StandardFunctionManager.java | 2 +- .../os/{ScriptFunctionGetEnv.java => ScriptFunctionEnv.java} | 2 +- script-js/src/main/java/com/instancify/scriptify/Test.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/{ScriptFunctionGetEnv.java => ScriptFunctionEnv.java} (93%) diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java b/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java index 04a475e..b2bd71a 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java @@ -40,7 +40,7 @@ public StandardFunctionManager() { this.register(new ScriptFunctionMD5()); this.register(new ScriptFunctionSHA256()); this.register(new ScriptFunctionExecCommand()); - this.register(new ScriptFunctionGetEnv()); + this.register(new ScriptFunctionEnv()); this.register(new ScriptFunctionShuffleArray()); } diff --git a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionEnv.java similarity index 93% rename from core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java rename to core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionEnv.java index 0f6b4f0..c33334b 100644 --- a/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionGetEnv.java +++ b/core/src/main/java/com/instancify/scriptify/core/script/function/impl/os/ScriptFunctionEnv.java @@ -9,7 +9,7 @@ /** * Represents a function to get environment variable value */ -public class ScriptFunctionGetEnv implements ScriptFunction { +public class ScriptFunctionEnv implements ScriptFunction { @Override public String getName() { diff --git a/script-js/src/main/java/com/instancify/scriptify/Test.java b/script-js/src/main/java/com/instancify/scriptify/Test.java index 229deac..78c941f 100644 --- a/script-js/src/main/java/com/instancify/scriptify/Test.java +++ b/script-js/src/main/java/com/instancify/scriptify/Test.java @@ -16,7 +16,7 @@ public static void main(String[] args) { script.setFunctionManager(functionManager); script.setConstantManager(constantManager); script.eval(""" - print(getEnv("JAVA_HOME")) + print(env("JAVA_HOME")) """); } }