Class Commandline

java.lang.Object
org.apache.maven.shared.utils.cli.Commandline
All Implemented Interfaces:
Cloneable

public class Commandline extends Object implements Cloneable

Commandline objects help handling command lines specifying processes to execute.

The class can be used to define a command line as nested elements or as a helper to define a command line by an application.

<someelement>
  <acommandline executable="/executable/to/run">
    <argument value="argument 1" />
    <argument line="argument_1 argument_2 argument_3" />
    <argument value="argument 4" />
  </acommandline>
</someelement>

The element someelement must provide a method createAcommandline which returns an instance of this class.

  • Field Details

  • Constructor Details

    • Commandline

      public Commandline(Shell shell)
      Create a new command line object. Shell is autodetected from operating system.
      Parameters:
      shell - the shell instance
    • Commandline

      public Commandline(String toProcess) throws CommandLineException
      Create a new command line object. Shell is autodetected from operating system.
      Parameters:
      toProcess - the command to process
      Throws:
      CommandLineException - in case of unbalanced quotes.
    • Commandline

      public Commandline()
      Create a new command line object. Shell is autodetected from operating system.
  • Method Details

    • setDefaultShell

      private void setDefaultShell()

      Sets the shell or command-line interpreter for the detected operating system, and the shell arguments.

    • createArg

      public Arg createArg()
      Creates an empty argument object and inserts it at the end of the argument list.
      Returns:
      the argument object
    • createArg

      public Arg createArg(boolean insertAtStart)
      Creates an argument object and adds it to the list of args.
      Parameters:
      insertAtStart - if true, the argument is inserted at the beginning of the list of args. Otherwise it is appended.
      Returns:
      the argument
    • setExecutable

      public void setExecutable(String executable)
      Sets the executable to run.
      Parameters:
      executable - the executable
    • getExecutable

      public String getExecutable()
      Returns:
      the executable
    • addArguments

      public void addArguments(String... line)
      Parameters:
      line - the arguments
    • addEnvironment

      public void addEnvironment(String name, String value)
      Add an environment variable.
      Parameters:
      name - the name of the environment variable
      value - the appropriate value
    • addSystemEnvironment

      public void addSystemEnvironment()
      Add system environment variables.
    • getEnvironmentVariables

      public String[] getEnvironmentVariables()
      Return the list of environment variables.
      Returns:
      an array of all environment variables
    • getCommandline

      public String[] getCommandline()
      Returns the executable and all defined arguments.
      Returns:
      an array of all arguments including the executable
    • getShellCommandline

      private String[] getShellCommandline()
      Returns:
      the shell, executable and all defined arguments without masking any arguments
    • getShellCommandline

      private String[] getShellCommandline(boolean mask)
      Parameters:
      mask - flag to mask any arguments (having his mask field to true)
      Returns:
      the shell, executable and all defined arguments with masking some arguments if mask parameter is on
    • getArguments

      public String[] getArguments()
      Returns all arguments defined by addLine, addValue or the argument object.
      Returns:
      an array of arguments.
    • getArguments

      public String[] getArguments(boolean mask)
      Returns all arguments defined by addLine, addValue, or the argument object.
      Parameters:
      mask - flag to mask any arguments (having his mask field to true)
      Returns:
      an array of arguments
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • clone

      public Object clone()
      Overrides:
      clone in class Object
    • setWorkingDirectory

      public void setWorkingDirectory(String path)
      Sets working directory.
      Parameters:
      path - the working directory
    • setWorkingDirectory

      public void setWorkingDirectory(File workingDirectory)
      Sets working directory.
      Parameters:
      workingDirectory - the working directory
    • getWorkingDirectory

      public File getWorkingDirectory()
      Returns:
      the working directory
    • clearArgs

      public void clearArgs()
      Clear out the arguments but leave the executable in place for another operation.
    • execute

      public Process execute() throws CommandLineException
      Execute the command.
      Returns:
      the process
      Throws:
      CommandLineException - in case of errors
    • setShell

      void setShell(Shell shell)
      Set the shell to be used for this command line.
      Parameters:
      shell - the shell
    • getShell

      public Shell getShell()
      Get the shell to be used in this command line.
      Returns:
      the shell