public ExecResult run()

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) {
      }
    }
  }