in command.line/java/jetbrains/buildServer/core/runtime/Platform.java [127:162]
public void runScripts(final String scriptContent, final String[] arguments, IProgressMonitor monitor) throws IOException {
final File script = File.createTempFile("tci-script", getPlatformScriptExtension());
final StringBuilder args = new StringBuilder();
final FileOutputStream out = new FileOutputStream(script);
RuntimeUtil.copy(new ByteArrayInputStream(scriptContent.getBytes()), out);
out.flush();
out.close();
monitor.status(new ProgressStatus(ProgressStatus.OK, String.format("Making executable '%s'", script)));
final File executableScript = makeExecutable(new File[] { script }, monitor)[0];
if (OS_WIN.equals(getOs())) {
} else if (OS_SOLARIS.equals(getOs())) {
RuntimeUtil.execAndWait("sh -version", new File("."), monitor);//check 'sh' exists
args.append(String.format("%s ", executableScript.getAbsolutePath()));
for (String arg : arguments) {
args.append(String.format("%s ", arg));
}
final String command = String.format("sh %s", args.toString().trim());
monitor.status(new ProgressStatus(ProgressStatus.OK, String.format("Running script '%s'", script)));
RuntimeUtil.execAndWait(command, new File("."), monitor);
} else if (OS_LINUX.equals(getOs())) {
RuntimeUtil.execAndWait("bash -version", new File("."), monitor);//check 'sh' exists
args.append(String.format("%s ", executableScript.getAbsolutePath()));
for (String arg : arguments) {
args.append(String.format("%s ", arg));
}
final String command = String.format("bash %s", args.toString().trim());
monitor.status(new ProgressStatus(ProgressStatus.OK, String.format("Running script '%s'", script)));
RuntimeUtil.execAndWait(command, new File("."), monitor);
} else {
//....
}
RuntimeUtil.delete(script);
}