Skip to content

Commit c2cf963

Browse files
committed
feat: ScriptFunctionJoinPath
1 parent 1be46bf commit c2cf963

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

core/src/main/java/com/instancify/scriptify/core/script/function/StandardFunctionManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public StandardFunctionManager() {
2525
this.register(new ScriptFunctionBase64Encode());
2626
this.register(new ScriptFunctionBase64Decode());
2727
this.register(new ScriptFunctionDownloadFromUrl());
28+
this.register(new ScriptFunctionJoinPath());
2829
}
2930

3031
@Override
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.instancify.scriptify.core.script.function.impl;
2+
3+
import com.instancify.scriptify.api.exception.ScriptFunctionArgTypeException;
4+
import com.instancify.scriptify.api.exception.ScriptFunctionException;
5+
import com.instancify.scriptify.api.script.function.ScriptFunction;
6+
7+
/**
8+
* Represents a function to join path
9+
*/
10+
public class ScriptFunctionJoinPath implements ScriptFunction {
11+
12+
@Override
13+
public String getName() {
14+
return "joinPath";
15+
}
16+
17+
@Override
18+
public Object invoke(Object[] args) throws ScriptFunctionException {
19+
String path = "";
20+
for(int i = 0; i < args.length; i++) {
21+
if(args[i] instanceof String segment) {
22+
if(path.isEmpty()) {
23+
path += segment;
24+
} else {
25+
path += '/' + segment;
26+
}
27+
} else {
28+
throw new ScriptFunctionArgTypeException(String.class, args[1].getClass());
29+
}
30+
}
31+
return path;
32+
}
33+
}

script-js/src/main/java/com/instancify/scriptify/Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
public class Test {
99
public static void main(String[] args) {
1010
JsScript script = new JsScript("""
11-
moveFile("LICENSE1", "LICENSE")
11+
print(readFile(joinPath("script-js", "src", "main", "java", "com", "instancify", "scriptify", "Test.java")));
1212
""");
1313

1414
StandardFunctionManager functionManager = new StandardFunctionManager();

0 commit comments

Comments
 (0)