Skip to content

Commit ebddd6f

Browse files
authored
Add files via upload
1 parent 0c712b2 commit ebddd6f

2 files changed

Lines changed: 927 additions & 894 deletions

File tree

com/devkev/devscript/nativecommands/NativeLibrary.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.File;
66
import java.io.FileReader;
77
import java.io.FileWriter;
8+
import java.io.InputStreamReader;
89
import java.net.URLDecoder;
910
import java.util.Random;
1011

@@ -154,9 +155,41 @@ public Object execute(Object[] args, Process application, Block block) throws Ex
154155

155156
new Command("exec", "string", "Executes a shell command") {
156157
public Object execute(Object[] args, Process application, Block block) throws Exception {
157-
new ProcessBuilder("cmd", "/c", args[0].toString()).inheritIO().start().waitFor();
158+
String OS = System.getProperty("os.name", "generic").toLowerCase();
159+
160+
if ((OS.indexOf("mac") >= 0) || (OS.indexOf("darwin") >= 0)) {
161+
//mac
162+
ProcessBuilder builder = new ProcessBuilder("/bin/bash", "-c", args[0].toString());
163+
java.lang.Process process = builder.start();
164+
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
165+
String line = null;
166+
while ( (line = reader.readLine()) != null) {
167+
application.log(line, true);
168+
}
169+
170+
} else if (OS.indexOf("win") >= 0) {
171+
//windows
172+
ProcessBuilder builder = new ProcessBuilder("cmd", "/c", args[0].toString());
173+
java.lang.Process process = builder.start();
174+
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
175+
String line = null;
176+
while ( (line = reader.readLine()) != null) {
177+
application.log(line, true);
178+
}
179+
} else if (OS.indexOf("nux") >= 0) {
180+
//linux
181+
ProcessBuilder builder = new ProcessBuilder("/bin/bash", "-c", args[0].toString());
182+
java.lang.Process process = builder.start();
183+
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
184+
String line = null;
185+
while ( (line = reader.readLine()) != null) {
186+
application.log(line, true);
187+
}
188+
189+
} else application.error("Failed to determine operating system");
158190
return null;
159191
}
192+
160193
},
161194

162195
new Command("script", "string", "Executes a new script sub-process with its parent in- and outputs") {

0 commit comments

Comments
 (0)