utils/bash/bash_parser library
Classes
- AssignmentParts
- Parsed variable assignment (name=value).
- BashToken
- A parsed bash token.
- CommandList
- Command list (connected by &&, ||, ;, &).
- CommandListEntry
- An entry in a command list: a pipeline plus the operator that follows it.
- CommandSecurityAnalysis
- Security analysis of a command.
- HeredocInfo
- Heredoc information.
- Pipeline
- Pipeline (connected by |).
- Redirect
- Redirect representation.
- SimpleCommand
- Simple command representation.
Enums
- BashTokenType
- Bash token types.
- CommandCategory
- Command category for security / display.
- ListOperator
- List operator between pipelines.
- RedirectType
- SecurityRiskLevel
- Risk level.
Functions
-
analyzeCommandSecurity(
String input) → CommandSecurityAnalysis - Analyze a command for security risks.
-
classifyCommand(
String command) → CommandCategory - Classify a command into a CommandCategory.
-
computeRiskLevel(
CommandSecurityAnalysis a) → SecurityRiskLevel - Compute risk level from analysis.
-
detectDangerousPatterns(
String command) → List< String> - Detect dangerous patterns in a command and return descriptions of each.
-
extractCdTarget(
String command) → String? -
Extract the target directory from a
cdcommand. -
extractCommands(
String input) → List< SimpleCommand> - Extract all simple commands from a command string.
-
extractExecutable(
String input) → String? - Extract the primary executable from a command string.
-
extractHeredocs(
String input) → List< HeredocInfo> - Extract heredoc information from a command string.
-
hasProcessSubstitution(
String command) → bool -
Detect if a command uses process substitution
<()or>(). -
interpretExitCode(
int exitCode, String command) → String - Provide a semantic interpretation of an exit code for a given command.
-
isDirectoryChangingCommand(
String command) → bool - Check if a command modifies the working directory.
-
isHeredocSafe(
HeredocInfo heredoc) → bool - Check if a heredoc is safe (no command substitution or dangerous variable expansion).
-
isValidAssignment(
String assignment) → bool - Validate environment variable assignments.
-
parseAssignment(
String assignment) → AssignmentParts? - Parse environment variable name and value from an assignment string.
-
parseCommand(
String input) → CommandList - Parse a command string into a CommandList.
-
shellQuote(
String input) → String - Quote a string for safe shell usage.
-
shellQuoteArgs(
List< String> args) → String - Quote a list of arguments and join them with spaces.
-
stripAnsiCodes(
String input) → String - Strip ANSI escape codes from output.
-
tokenizeBash(
String input) → List< BashToken> - Tokenize a bash command string into a list of BashTokens.
-
truncateOutput(
String output, {int maxLines = 1000, int maxChars = 100000}) → String - Truncate command output to a maximum number of lines and/or characters.