Class Shell
java.lang.Object
org.apache.maven.shared.utils.cli.shell.Shell
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
BourneShell
,CmdShell
,CommandShell
Class that abstracts the Shell functionality,
with subclasses for shells that behave particularly, like
command.com
cmd.exe
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()
(package private) char
getCommandLine
(String executableParameter, String... argumentsParameter) Get the command line for the provided executable and arguments in this shell(package private) char[]
getEscapeChars
(boolean includeSingleQuote, boolean includeDoubleQuote) (package private) char
(package private) String
(package private) char[]
getRawCommandLine
(String executableParameter, String... argumentsParameter) (package private) String[]
Get the shell arguments(package private) String
Get the command to execute the shell.getShellCommandLine
(String... arguments) Get the full command line to execute, including shell command, shell arguments, executable and executable arguments(package private) String
protected boolean
(package private) boolean
(package private) boolean
(package private) boolean
protected boolean
(package private) boolean
boolean
protected String
quoteOneItem
(String inputString, boolean isExecutable) (package private) void
setArgumentQuoteDelimiter
(char argQuoteDelimiterParameter) void
setExecutable
(String executable) Sets the executable to run.(package private) void
setExecutableQuoteDelimiter
(char exeQuoteDelimiterParameter) void
setQuotedArgumentsEnabled
(boolean quotedArgumentsEnabled) (package private) void
setQuotedExecutableEnabled
(boolean quotedExecutableEnabled) (package private) void
setShellArgs
(String[] shellArgs) Set the shell arguments when calling a command line (not the executable arguments) (e.g.(package private) void
setShellCommand
(String shellCommand) Set the command to execute the shell (e.g.(package private) void
setSingleQuotedArgumentEscaped
(boolean singleQuotedArgumentEscaped) (package private) void
setSingleQuotedExecutableEscaped
(boolean singleQuotedExecutableEscaped) void
setUnconditionalQuoting
(boolean unconditionalQuoting) void
setWorkingDirectory
(File workingDirectory) Sets execution directory.void
setWorkingDirectory
(String path) Sets execution directory.
-
Field Details
-
DEFAULT_QUOTING_TRIGGER_CHARS
private static final char[] DEFAULT_QUOTING_TRIGGER_CHARS -
shellCommand
-
shellArgs
-
quotedArgumentsEnabled
private boolean quotedArgumentsEnabled -
unconditionalQuoting
private boolean unconditionalQuoting -
executable
-
workingDir
-
quotedExecutableEnabled
private boolean quotedExecutableEnabled -
singleQuotedArgumentEscaped
private boolean singleQuotedArgumentEscaped -
singleQuotedExecutableEscaped
private boolean singleQuotedExecutableEscaped -
argQuoteDelimiter
private char argQuoteDelimiter -
exeQuoteDelimiter
private char exeQuoteDelimiter
-
-
Constructor Details
-
Shell
public Shell()
-
-
Method Details
-
setShellCommand
Set the command to execute the shell (e.g. COMMAND.COM, /bin/bash,...).- Parameters:
shellCommand
- the command
-
getShellCommand
String getShellCommand()Get the command to execute the shell.- Returns:
- the command
-
setShellArgs
Set the shell arguments when calling a command line (not the executable arguments) (e.g. /X /C for CMD.EXE).- Parameters:
shellArgs
- the arguments to the shell
-
getShellArgs
String[] getShellArgs()Get the shell arguments- Returns:
- the arguments
-
quoteOneItem
-
getCommandLine
Get the command line for the provided executable and arguments in this shell- Parameters:
executableParameter
- executable that the shell has to callargumentsParameter
- arguments for the executable, not the shell- Returns:
- list with one String object with executable and arguments quoted as needed
-
getRawCommandLine
- Parameters:
executableParameter
- ExecutableargumentsParameter
- the arguments for the executable- Returns:
- the list on command line
-
getQuotingTriggerChars
char[] getQuotingTriggerChars() -
getExecutionPreamble
String getExecutionPreamble() -
getEscapeChars
char[] getEscapeChars(boolean includeSingleQuote, boolean includeDoubleQuote) -
isDoubleQuotedArgumentEscaped
protected boolean isDoubleQuotedArgumentEscaped()- Returns:
- false in all cases
-
isSingleQuotedArgumentEscaped
protected boolean isSingleQuotedArgumentEscaped()- Returns:
singleQuotedArgumentEscaped
-
isDoubleQuotedExecutableEscaped
boolean isDoubleQuotedExecutableEscaped() -
isSingleQuotedExecutableEscaped
boolean isSingleQuotedExecutableEscaped() -
setArgumentQuoteDelimiter
void setArgumentQuoteDelimiter(char argQuoteDelimiterParameter) - Parameters:
argQuoteDelimiterParameter
-argQuoteDelimiter
-
getArgumentQuoteDelimiter
char getArgumentQuoteDelimiter() -
setExecutableQuoteDelimiter
void setExecutableQuoteDelimiter(char exeQuoteDelimiterParameter) - Parameters:
exeQuoteDelimiterParameter
-exeQuoteDelimiter
-
getExecutableQuoteDelimiter
char getExecutableQuoteDelimiter() -
getShellCommandLine
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
-
setQuotedArgumentsEnabled
public void setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled) - Parameters:
quotedArgumentsEnabled
-quotedArgumentsEnabled
-
isQuotedArgumentsEnabled
boolean isQuotedArgumentsEnabled() -
setQuotedExecutableEnabled
void setQuotedExecutableEnabled(boolean quotedExecutableEnabled) -
isQuotedExecutableEnabled
boolean isQuotedExecutableEnabled() -
setExecutable
Sets the executable to run.- Parameters:
executable
- The executable.
-
getExecutable
- Returns:
- The executable.
-
setWorkingDirectory
Sets execution directory.- Parameters:
path
- The path which should be used as working directory.
-
setWorkingDirectory
Sets execution directory.- Parameters:
workingDirectory
- the working directory
-
getWorkingDirectory
- Returns:
- the working directory
-
getWorkingDirectoryAsString
String getWorkingDirectoryAsString() -
clone
-
setSingleQuotedArgumentEscaped
void setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped) -
setSingleQuotedExecutableEscaped
void setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped) -
isUnconditionalQuoting
public boolean isUnconditionalQuoting() -
setUnconditionalQuoting
public void setUnconditionalQuoting(boolean unconditionalQuoting)
-