Class CommandLineUtils

java.lang.Object
org.apache.maven.shared.utils.cli.CommandLineUtils

public abstract class CommandLineUtils extends Object
Author:
Trygve Laugstøl
  • Constructor Details

    • CommandLineUtils

      public CommandLineUtils()
  • Method Details

    • executeCommandLine

      public static int executeCommandLine(@Nonnull Commandline cl, StreamConsumer systemOut, StreamConsumer systemErr) throws CommandLineException
      Parameters:
      cl - The command line Commandline
      systemOut - StreamConsumer
      systemErr - StreamConsumer
      Returns:
      return code.
      Throws:
      CommandLineException - in case of a problem.
    • executeCommandLine

      public static int executeCommandLine(@Nonnull Commandline cl, StreamConsumer systemOut, StreamConsumer systemErr, int timeoutInSeconds) throws CommandLineException
      Parameters:
      cl - The command line Commandline
      systemOut - StreamConsumer
      systemErr - StreamConsumer
      timeoutInSeconds - The timeout.
      Returns:
      return code.
      Throws:
      CommandLineException - in case of a problem.
    • executeCommandLine

      public static int executeCommandLine(@Nonnull Commandline cl, InputStream systemIn, StreamConsumer systemOut, StreamConsumer systemErr) throws CommandLineException
      Parameters:
      cl - The command line Commandline
      systemIn - StreamConsumer
      systemOut - StreamConsumer
      systemErr - StreamConsumer
      Returns:
      return code.
      Throws:
      CommandLineException - in case of a problem.
    • executeCommandLine

      public static int executeCommandLine(@Nonnull Commandline cl, InputStream systemIn, StreamConsumer systemOut, StreamConsumer systemErr, int timeoutInSeconds) throws CommandLineException
      Parameters:
      cl - The command line to execute
      systemIn - The input to read from, must be thread safe
      systemOut - A consumer that receives output, must be thread safe
      systemErr - A consumer that receives system error stream output, must be thread safe
      timeoutInSeconds - Positive integer to specify timeout, zero and negative integers for no timeout.
      Returns:
      A return value, see Process.exitValue()
      Throws:
      CommandLineException - or CommandLineTimeOutException if time out occurs
    • executeCommandLine

      public static int executeCommandLine(@Nonnull Commandline cl, InputStream systemIn, StreamConsumer systemOut, StreamConsumer systemErr, int timeoutInSeconds, @Nullable Runnable runAfterProcessTermination) throws CommandLineException
      Parameters:
      cl - The command line to execute
      systemIn - The input to read from, must be thread safe
      systemOut - A consumer that receives output, must be thread safe
      systemErr - A consumer that receives system error stream output, must be thread safe
      timeoutInSeconds - Positive integer to specify timeout, zero and negative integers for no timeout.
      runAfterProcessTermination - Optional callback to run after the process terminated or the the timeout was exceeded, but before waiting on the stream feeder and pumpers to finish.
      Returns:
      A return value, see Process.exitValue()
      Throws:
      CommandLineException - or CommandLineTimeOutException if time out occurs
    • executeCommandLine

      public static int executeCommandLine(@Nonnull Commandline cl, InputStream systemIn, StreamConsumer systemOut, StreamConsumer systemErr, int timeoutInSeconds, @Nullable Runnable runAfterProcessTermination, @Nullable Charset streamCharset) throws CommandLineException
      Parameters:
      cl - The command line to execute
      systemIn - The input to read from, must be thread safe
      systemOut - A consumer that receives output, must be thread safe
      systemErr - A consumer that receives system error stream output, must be thread safe
      timeoutInSeconds - Positive integer to specify timeout, zero and negative integers for no timeout.
      runAfterProcessTermination - Optional callback to run after the process terminated or the the timeout was exceeded, but before waiting on the stream feeder and pumpers to finish.
      streamCharset - Charset to use for reading streams
      Returns:
      A return value, see Process.exitValue()
      Throws:
      CommandLineException - or CommandLineTimeOutException if time out occurs
    • executeCommandLineAsCallable

      public static CommandLineCallable executeCommandLineAsCallable(@Nonnull Commandline cl, @Nullable InputStream systemIn, StreamConsumer systemOut, StreamConsumer systemErr, int timeoutInSeconds, @Nullable Runnable runAfterProcessTermination) throws CommandLineException
      Immediately forks a process, returns a callable that will block until process is complete.
      Parameters:
      cl - The command line to execute
      systemIn - The input to read from, must be thread safe
      systemOut - A consumer that receives output, must be thread safe
      systemErr - A consumer that receives system error stream output, must be thread safe
      timeoutInSeconds - Positive integer to specify timeout, zero and negative integers for no timeout.
      runAfterProcessTermination - Optional callback to run after the process terminated or the the timeout was
      Returns:
      A CommandLineCallable that provides the process return value, see Process.exitValue(). "call" must be called on this to be sure the forked process has terminated, no guarantees is made about any internal state before after the completion of the call statements
      Throws:
      CommandLineException - or CommandLineTimeOutException if time out occurs
    • executeCommandLineAsCallable

      public static CommandLineCallable executeCommandLineAsCallable(@Nonnull Commandline cl, @Nullable InputStream systemIn, StreamConsumer systemOut, StreamConsumer systemErr, int timeoutInSeconds, @Nullable Runnable runAfterProcessTermination, @Nullable Charset streamCharset) throws CommandLineException
      Immediately forks a process, returns a callable that will block until process is complete.
      Parameters:
      cl - The command line to execute
      systemIn - The input to read from, must be thread safe
      systemOut - A consumer that receives output, must be thread safe
      systemErr - A consumer that receives system error stream output, must be thread safe
      timeoutInSeconds - Positive integer to specify timeout, zero and negative integers for no timeout.
      runAfterProcessTermination - Optional callback to run after the process terminated or the the timeout was
      streamCharset - Charset to use for reading streams
      Returns:
      A CommandLineCallable that provides the process return value, see Process.exitValue(). "call" must be called on this to be sure the forked process has terminated, no guarantees is made about any internal state before after the completion of the call statements
      Throws:
      CommandLineException - or CommandLineTimeOutException if time out occurs
    • getSystemEnvVars

      @Deprecated public static Properties getSystemEnvVars()
      Deprecated.
      use System#getenv()
      Gets the shell environment variables for this process. Note that the returned mapping from variable names to values will always be case-sensitive regardless of the platform, i.e. getSystemEnvVars().get("path") and getSystemEnvVars().get("PATH") will in general return different values. However, on platforms with case-insensitive environment variables like Windows, all variable names will be normalized to upper case.
      Returns:
      The shell environment variables, can be empty but never null.
    • getSystemEnvVars

      @Deprecated public static Properties getSystemEnvVars(boolean caseSensitive)
      Deprecated.
      use System#getenv()
      Return the shell environment variables. If caseSensitive == true, then envar keys will all be upper-case.
      Parameters:
      caseSensitive - Whether environment variable keys should be treated case-sensitively.
      Returns:
      Properties object of (possibly modified) envar keys mapped to their values.
    • translateCommandline

      public static String[] translateCommandline(String toProcess) throws CommandLineException
      Parameters:
      toProcess - The command line to translate.
      Returns:
      The array of translated parts.
      Throws:
      CommandLineException - in case of unbalanced quotes.
    • toString

      public static String toString(String... line)
      Parameters:
      line - the lines
      Returns:
      the concatenated lines, quoted and escaped, separated by spaces