in rake-runner-agent/src/jetbrains/buildServer/agent/rakerunner/scripting/ProcessBasedRubyScriptRunner.java [31:65]
public ExecResult run(@NotNull final String script,
@NotNull final String workingDirectory,
@Nullable final Map<String, String> environment,
@NotNull final String... rubyArgs) {
ExecResult result = null;
File scriptFile = null;
try {
// Writing source to the temp file
scriptFile = File.createTempFile("script", ".rb");
PrintStream out = new PrintStream(scriptFile);
out.print(script);
out.close();
//Args
final String[] args = new String[2 + rubyArgs.length];
args[0] = mySdk.getRubyExecutable().getAbsolutePath();
System.arraycopy(rubyArgs, 0, args, 1, rubyArgs.length);
args[rubyArgs.length + 1] = scriptFile.getPath();
// Env
final EnvironmentPatchableMap patchableEnv = new EnvironmentPatchableMap(environment);
RVMSupportUtil.patchEnvForRVMIfNecessary(mySdk, patchableEnv);
//Result
result = RunnerUtil.run(workingDirectory, patchableEnv, args);
} catch (Exception e) {
LOG.error(e.getMessage(), e);
} finally {
if (scriptFile != null && scriptFile.exists()) {
scriptFile.delete();
}
}
return result;
}