Skip to content

Class ShellInterpreter ​

Source: shellInterpreter.ts

Handles the parsing, expansion, and execution of shell commands and scripts. Manages the process pipeline and stream redirection.

Constructors ​

Constructor ​

new ShellInterpreter(shell: Shell): ShellInterpreter

Parameters ​

shell ​

Shell

Returns ​

ShellInterpreter

Properties ​

pipeline ​

pipeline: Process[] = []

Methods ​

terminatePipeline() ​

terminatePipeline(signal: StreamSignal): void

Sends a termination signal to all processes currently in the pipeline.

Parameters ​

signal ​

StreamSignal

The signal to send.

Returns ​

void


execute() ​

execute(input: string | VirtualFile, io?: Partial<ProcessIO>): Promise<number>

Parses and executes a shell script.

Parameters ​

input ​

string | VirtualFile

The script content or a virtual file.

io? ​

Partial<ProcessIO>

Optional output streams to override default TTY behavior.

Returns ​

Promise<number>

The exit code of the last command executed in the script.


evaluateArithmetic() ​

evaluateArithmetic(node: ArithmeticNode, env: ShellEnvironment): number

Evaluates an arithmetic expression using an ArithmeticParser and returns an exit code.

Parameters ​

node ​

ArithmeticNode

The arithmetic operation.

env ​

ShellEnvironment

The ShellEnvironment used for variable resolution within this instance.

Returns ​

number

EXIT_CODE.success if the ArithmeticParserResult is successful and non-zero, or EXIT_CODE.generalError otherwise.


evaluatePrompt() ​

evaluatePrompt(format: string, env?: ShellEnvironment): Promise<string>

Evaluates a prompt string by resolving escape sequences and shell expansions.

Parameters ​

format ​

string

env? ​

ShellEnvironment = ...

Returns ​

Promise<string>

Built by Prozilla