in rake-runner-agent/src/jetbrains/buildServer/agent/rakerunner/scripting/RvmShellRunner.java [58:93]
public ExecResult run(@NotNull final String script,
@NotNull final String workingDirectory,
@Nullable final Map<String, String> environment) {
final File directory = new File(workingDirectory);
File scriptFile = null;
try {
try {
scriptFile = FileUtil.createTempFile(directory, "rvm_shell", ".sh", true);
FileUtil.writeFileAndReportErrors(scriptFile, script);
} catch (IOException e) {
LOG.error("Failed to create temp file, error: ", e);
final ExecResult result = new ExecResult();
result.setStderr("Failed to create temp file, error: " + e.getMessage());
result.setException(e);
return result;
}
// Patching environment
final HashMap<String, String> environment1 = new HashMap<String, String>();
if (environment != null) {
environment1.putAll(environment);
}
environment1.put("rvm_trust_rvmrcs_flag", "1");
environment1.put("rvm_path", myRVM.getPath());
return RunnerUtil.run(workingDirectory, environment1,
createProcessArguments(myRVM.getPath() + "/bin/rvm-shell", workingDirectory, scriptFile));
} finally {
try {
if (scriptFile != null) {
FileUtil.delete(scriptFile);
}
} catch (SecurityException ignored) {
}
}
}