Class Shell
- java.lang.Object
-
- org.codehaus.plexus.util.cli.shell.Shell
-
- All Implemented Interfaces:
java.lang.Cloneable
- Direct Known Subclasses:
BourneShell,CmdShell,CommandShell
public class Shell extends java.lang.Object implements java.lang.CloneableClass that abstracts the Shell functionality, with subclasses for shells that behave particularly, likecommand.comcmd.exe
- Since:
- 1.2
- Author:
- Carlos Sanchez
-
-
Constructor Summary
Constructors Constructor Description Shell()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddShellArg(java.lang.String arg)voidclearArguments()java.lang.Objectclone()protected java.lang.StringgetArgumentEscapePattern()protected chargetArgumentQuoteDelimiter()java.util.List<java.lang.String>getCommandLine(java.lang.String executable, java.lang.String[] arguments)Get the command line for the provided executable and arguments in this shellprotected char[]getEscapeChars(boolean includeSingleQuote, boolean includeDoubleQuote)java.lang.StringgetExecutable()protected chargetExecutableQuoteDelimiter()protected java.lang.StringgetExecutionPreamble()java.util.List<java.lang.String>getOriginalCommandLine(java.lang.String executable, java.lang.String[] arguments)java.lang.StringgetOriginalExecutable()protected char[]getQuotingTriggerChars()protected java.util.List<java.lang.String>getRawCommandLine(java.lang.String executable, java.lang.String[] arguments)java.lang.String[]getShellArgs()java.util.List<java.lang.String>getShellArgsList()java.lang.StringgetShellCommand()Get the command to execute the shelljava.util.List<java.lang.String>getShellCommandLine(java.lang.String[] arguments)Get the full command line to execute, including shell command, shell arguments, executable and executable argumentsjava.io.FilegetWorkingDirectory()java.lang.StringgetWorkingDirectoryAsString()protected booleanisDoubleQuotedArgumentEscaped()protected booleanisDoubleQuotedExecutableEscaped()booleanisQuotedArgumentsEnabled()booleanisQuotedExecutableEnabled()protected booleanisSingleQuotedArgumentEscaped()protected booleanisSingleQuotedExecutableEscaped()protected java.lang.StringquoteOneItem(java.lang.String inputString, boolean isExecutable)protected voidsetArgumentEscapePattern(java.lang.String argumentEscapePattern)protected voidsetArgumentQuoteDelimiter(char argQuoteDelimiter)protected voidsetDoubleQuotedArgumentEscaped(boolean doubleQuotedArgumentEscaped)protected voidsetDoubleQuotedExecutableEscaped(boolean doubleQuotedExecutableEscaped)voidsetExecutable(java.lang.String executable)protected voidsetExecutableQuoteDelimiter(char exeQuoteDelimiter)voidsetQuotedArgumentsEnabled(boolean quotedArgumentsEnabled)voidsetQuotedExecutableEnabled(boolean quotedExecutableEnabled)voidsetShellArgs(java.lang.String[] shellArgs)Set the shell arguments when calling a command line (not the executable arguments) (eg.voidsetShellCommand(java.lang.String shellCommand)Set the command to execute the shell (eg.protected voidsetSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped)protected voidsetSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped)voidsetUnconditionalQuoting(boolean unconditionallyQuote)Toggle unconditional quotingvoidsetWorkingDirectory(java.io.File workingDir)voidsetWorkingDirectory(java.lang.String path)
-
-
-
Method Detail
-
setUnconditionalQuoting
public void setUnconditionalQuoting(boolean unconditionallyQuote)
Toggle unconditional quoting- Parameters:
unconditionallyQuote- see name
-
setShellCommand
public void setShellCommand(java.lang.String shellCommand)
Set the command to execute the shell (eg. COMMAND.COM, /bin/bash,...)- Parameters:
shellCommand- see name
-
getShellCommand
public java.lang.String getShellCommand()
Get the command to execute the shell- Returns:
- the command
-
setShellArgs
public void setShellArgs(java.lang.String[] shellArgs)
Set the shell arguments when calling a command line (not the executable arguments) (eg. /X /C for CMD.EXE)- Parameters:
shellArgs- see name
-
getShellArgs
public java.lang.String[] getShellArgs()
- Returns:
- the shell arguments
-
getCommandLine
public java.util.List<java.lang.String> getCommandLine(java.lang.String executable, java.lang.String[] arguments)Get the command line for the provided executable and arguments in this shell- Parameters:
executable- executable that the shell has to callarguments- arguments for the executable, not the shell- Returns:
- List with one String object with executable and arguments quoted as needed
-
quoteOneItem
protected java.lang.String quoteOneItem(java.lang.String inputString, boolean isExecutable)
-
getRawCommandLine
protected java.util.List<java.lang.String> getRawCommandLine(java.lang.String executable, java.lang.String[] arguments)
-
getQuotingTriggerChars
protected char[] getQuotingTriggerChars()
-
getExecutionPreamble
protected java.lang.String getExecutionPreamble()
-
getEscapeChars
protected char[] getEscapeChars(boolean includeSingleQuote, boolean includeDoubleQuote)
-
isDoubleQuotedArgumentEscaped
protected boolean isDoubleQuotedArgumentEscaped()
-
isSingleQuotedArgumentEscaped
protected boolean isSingleQuotedArgumentEscaped()
-
isDoubleQuotedExecutableEscaped
protected boolean isDoubleQuotedExecutableEscaped()
-
isSingleQuotedExecutableEscaped
protected boolean isSingleQuotedExecutableEscaped()
-
setArgumentQuoteDelimiter
protected void setArgumentQuoteDelimiter(char argQuoteDelimiter)
-
getArgumentQuoteDelimiter
protected char getArgumentQuoteDelimiter()
-
setExecutableQuoteDelimiter
protected void setExecutableQuoteDelimiter(char exeQuoteDelimiter)
-
getExecutableQuoteDelimiter
protected char getExecutableQuoteDelimiter()
-
setArgumentEscapePattern
protected void setArgumentEscapePattern(java.lang.String argumentEscapePattern)
-
getArgumentEscapePattern
protected java.lang.String getArgumentEscapePattern()
-
getShellCommandLine
public java.util.List<java.lang.String> getShellCommandLine(java.lang.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()
-
getShellArgsList
public java.util.List<java.lang.String> getShellArgsList()
-
addShellArg
public void addShellArg(java.lang.String arg)
-
setQuotedArgumentsEnabled
public void setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled)
-
isQuotedArgumentsEnabled
public boolean isQuotedArgumentsEnabled()
-
setQuotedExecutableEnabled
public void setQuotedExecutableEnabled(boolean quotedExecutableEnabled)
-
isQuotedExecutableEnabled
public boolean isQuotedExecutableEnabled()
-
setExecutable
public void setExecutable(java.lang.String executable)
- Parameters:
executable- Sets the executable to run.
-
getExecutable
public java.lang.String getExecutable()
-
setWorkingDirectory
public void setWorkingDirectory(java.lang.String path)
- Parameters:
path- Sets execution directory.
-
setWorkingDirectory
public void setWorkingDirectory(java.io.File workingDir)
- Parameters:
workingDir- Sets execution directory.
-
getWorkingDirectory
public java.io.File getWorkingDirectory()
-
getWorkingDirectoryAsString
public java.lang.String getWorkingDirectoryAsString()
-
clearArguments
public void clearArguments()
-
clone
public java.lang.Object clone()
- Overrides:
clonein classjava.lang.Object
-
getOriginalExecutable
public java.lang.String getOriginalExecutable()
-
getOriginalCommandLine
public java.util.List<java.lang.String> getOriginalCommandLine(java.lang.String executable, java.lang.String[] arguments)
-
setDoubleQuotedArgumentEscaped
protected void setDoubleQuotedArgumentEscaped(boolean doubleQuotedArgumentEscaped)
-
setDoubleQuotedExecutableEscaped
protected void setDoubleQuotedExecutableEscaped(boolean doubleQuotedExecutableEscaped)
-
setSingleQuotedArgumentEscaped
protected void setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped)
-
setSingleQuotedExecutableEscaped
protected void setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped)
-
-