org.jruby.util
Class ShellLauncher

java.lang.Object
  extended by org.jruby.util.ShellLauncher

public class ShellLauncher
extends java.lang.Object

This mess of a class is what happens when all Java gives you is Runtime.getRuntime().exec(). Thanks dude, that really helped.

Author:
nicksieger

Nested Class Summary
static class ShellLauncher.POpenProcess
           
 
Constructor Summary
ShellLauncher()
           
 
Method Summary
static int execAndWait(Ruby runtime, IRubyObject[] rawArgs)
           
static long getPidFromProcess(java.lang.Process process)
           
static ShellLauncher.POpenProcess popen(Ruby runtime, IRubyObject string, ModeFlags modes)
           
static ShellLauncher.POpenProcess popen3(Ruby runtime, IRubyObject[] strings)
           
static long reflectPidFromProcess(java.lang.Process process)
           
static java.lang.Process run(Ruby runtime, IRubyObject string)
           
static java.lang.Process run(Ruby runtime, IRubyObject[] rawArgs)
           
static int runAndWait(Ruby runtime, IRubyObject[] rawArgs)
           
static int runAndWait(Ruby runtime, IRubyObject[] rawArgs, java.io.OutputStream output)
           
static long runWithoutWait(Ruby runtime, IRubyObject[] rawArgs)
           
static long runWithoutWait(Ruby runtime, IRubyObject[] rawArgs, java.io.OutputStream output)
           
static java.io.InputStream unwrapBufferedStream(java.io.InputStream filteredStream)
          Unwrap all filtering streams between the given stream and its actual unfiltered stream.
static java.io.OutputStream unwrapBufferedStream(java.io.OutputStream filteredStream)
          Unwrap all filtering streams between the given stream and its actual unfiltered stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ShellLauncher

public ShellLauncher()
Method Detail

runAndWait

public static int runAndWait(Ruby runtime,
                             IRubyObject[] rawArgs)

runWithoutWait

public static long runWithoutWait(Ruby runtime,
                                  IRubyObject[] rawArgs)

execAndWait

public static int execAndWait(Ruby runtime,
                              IRubyObject[] rawArgs)

runAndWait

public static int runAndWait(Ruby runtime,
                             IRubyObject[] rawArgs,
                             java.io.OutputStream output)

runWithoutWait

public static long runWithoutWait(Ruby runtime,
                                  IRubyObject[] rawArgs,
                                  java.io.OutputStream output)

getPidFromProcess

public static long getPidFromProcess(java.lang.Process process)

reflectPidFromProcess

public static long reflectPidFromProcess(java.lang.Process process)

run

public static java.lang.Process run(Ruby runtime,
                                    IRubyObject string)
                             throws java.io.IOException
Throws:
java.io.IOException

popen

public static ShellLauncher.POpenProcess popen(Ruby runtime,
                                               IRubyObject string,
                                               ModeFlags modes)
                                        throws java.io.IOException
Throws:
java.io.IOException

popen3

public static ShellLauncher.POpenProcess popen3(Ruby runtime,
                                                IRubyObject[] strings)
                                         throws java.io.IOException
Throws:
java.io.IOException

unwrapBufferedStream

public static java.io.OutputStream unwrapBufferedStream(java.io.OutputStream filteredStream)
Unwrap all filtering streams between the given stream and its actual unfiltered stream. This is primarily to unwrap streams that have buffers that would interfere with interactivity.

Parameters:
filteredStream - The stream to unwrap
Returns:
An unwrapped stream, presumably unbuffered

unwrapBufferedStream

public static java.io.InputStream unwrapBufferedStream(java.io.InputStream filteredStream)
Unwrap all filtering streams between the given stream and its actual unfiltered stream. This is primarily to unwrap streams that have buffers that would interfere with interactivity.

Parameters:
filteredStream - The stream to unwrap
Returns:
An unwrapped stream, presumably unbuffered

run

public static java.lang.Process run(Ruby runtime,
                                    IRubyObject[] rawArgs)
                             throws java.io.IOException
Throws:
java.io.IOException


Copyright © 2002-2009 JRuby Team. All Rights Reserved.