public ExecResult run()

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;
  }