public ExecResult run()

in rake-runner-agent/src/jetbrains/buildServer/agent/ruby/rbenv/RbEnvShellRunner.java [29:63]


  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, "rbenv", ".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(Constants.RBENV_ROOT_ENV_VARIABLE, myRbEnv.getHome().getAbsolutePath());
      environment1.put(Constants.RBENV_VERSION_ENV_VARIABLE, getVersion());

      return RunnerUtil.run(workingDirectory, environment1, "/bin/sh", scriptFile.getAbsolutePath());
    } finally {
      try {
        if (scriptFile != null) {
          FileUtil.delete(scriptFile);
        }
      } catch (SecurityException ignored) {
      }
    }
  }