org.codehaus.plexus.util.cli.shell

Class Shell

Implemented Interfaces:
Cloneable
Known Direct Subclasses:
BourneShell, CmdShell, CommandShell

public class Shell
extends java.lang.Object
implements Cloneable

Class that abstracts the Shell functionality, with subclases for shells that behave particularly, like
Version:
$Id: Shell.java 5960 2007-02-28 22:35:43Z jdcasey $
Author:
Carlos Sanchez
Since:
1.2

Method Summary

void
addShellArg(String arg)
void
clearArguments()
Object
clone()
List
getCommandLine(String executable, String[] arguments)
Get the command line for the provided executable and arguments in this shell
String
getExecutable()
List
getOriginalCommandLine(String executable, String[] arguments)
String
getOriginalExecutable()
String[]
getShellArgs()
Get the shell arguments
List
getShellArgsList()
String
getShellCommand()
Get the command to execute the shell
List
getShellCommandLine(String[] arguments)
Get the full command line to execute, including shell command, shell arguments, executable and executable arguments
File
getWorkingDirectory()
protected boolean
isDoubleQuotedArgumentEscaped()
protected boolean
isDoubleQuotedExecutableEscaped()
boolean
isQuotedArgumentsEnabled()
boolean
isQuotedExecutableEnabled()
protected boolean
isSingleQuotedArgumentEscaped()
protected boolean
isSingleQuotedExecutableEscaped()
protected void
setDoubleQuotedArgumentEscaped(boolean doubleQuotedArgumentEscaped)
protected void
setDoubleQuotedExecutableEscaped(boolean doubleQuotedExecutableEscaped)
void
setExecutable(String executable)
Sets the executable to run.
void
setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled)
void
setQuotedExecutableEnabled(boolean quotedExecutableEnabled)
void
setShellArgs(String[] shellArgs)
Set the shell arguments when calling a command line (not the executable arguments) (eg.
void
setShellCommand(String shellCommand)
Set the command to execute the shell (eg.
protected void
setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped)
protected void
setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped)
void
setWorkingDirectory(File workingDir)
Sets execution directory.
void
setWorkingDirectory(String path)
Sets execution directory.

Method Details

addShellArg

public void addShellArg(String arg)

clearArguments

public void clearArguments()

clone

public Object clone()

getCommandLine

public List getCommandLine(String executable,
                           String[] arguments)
Get the command line for the provided executable and arguments in this shell
Parameters:
executable - executable that the shell has to call
arguments - arguments for the executable, not the shell
Returns:
List with one String object with executable and arguments quoted as needed

getExecutable

public String getExecutable()

getOriginalCommandLine

public List getOriginalCommandLine(String executable,
                                   String[] arguments)

getOriginalExecutable

public String getOriginalExecutable()

getShellArgs

public String[] getShellArgs()
Get the shell arguments
Returns:

getShellArgsList

public List getShellArgsList()

getShellCommand

public String getShellCommand()
Get the command to execute the shell
Returns:

getShellCommandLine

public List getShellCommandLine(String[] arguments)
Get the full command line to execute, including shell command, shell arguments, executable and executable arguments
Parameters:
arguments - arguments for the executable, not the shell
Returns:
List of String objects, whose array version is suitable to be used as argument of Runtime.getRuntime().exec()

getWorkingDirectory

public File getWorkingDirectory()

isDoubleQuotedArgumentEscaped

protected boolean isDoubleQuotedArgumentEscaped()

isDoubleQuotedExecutableEscaped

protected boolean isDoubleQuotedExecutableEscaped()

isQuotedArgumentsEnabled

public boolean isQuotedArgumentsEnabled()

isQuotedExecutableEnabled

public boolean isQuotedExecutableEnabled()

isSingleQuotedArgumentEscaped

protected boolean isSingleQuotedArgumentEscaped()

isSingleQuotedExecutableEscaped

protected boolean isSingleQuotedExecutableEscaped()

setDoubleQuotedArgumentEscaped

protected void setDoubleQuotedArgumentEscaped(boolean doubleQuotedArgumentEscaped)

setDoubleQuotedExecutableEscaped

protected void setDoubleQuotedExecutableEscaped(boolean doubleQuotedExecutableEscaped)

setExecutable

public void setExecutable(String executable)
Sets the executable to run.

setQuotedArgumentsEnabled

public void setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled)

setQuotedExecutableEnabled

public void setQuotedExecutableEnabled(boolean quotedExecutableEnabled)

setShellArgs

public void setShellArgs(String[] shellArgs)
Set the shell arguments when calling a command line (not the executable arguments) (eg. /X /C for CMD.EXE)
Parameters:
shellArgs -

setShellCommand

public void setShellCommand(String shellCommand)
Set the command to execute the shell (eg. COMMAND.COM, /bin/bash,...)
Parameters:
shellCommand -

setSingleQuotedArgumentEscaped

protected void setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped)

setSingleQuotedExecutableEscaped

protected void setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped)

setWorkingDirectory

public void setWorkingDirectory(File workingDir)
Sets execution directory.

setWorkingDirectory

public void setWorkingDirectory(String path)
Sets execution directory.