Files
plainleaf/website/API/shell.md
T
2025-04-03 18:09:51 +02:00

40 lines
1.0 KiB
Markdown

The Shell API provides functions for running shell commands and interacting with processes.
### shell.run(cmd, args)
Runs a shell command and returns its output.
Parameters:
- `cmd`: The command to run
- `args`: Array of arguments to pass to the command
Returns an object with:
- `stdout`: The standard output of the command
- `stderr`: The standard error of the command
- `code`: The exit code of the command
Example:
```lua
local result = shell.run("ls", {"-l"})
print("Output:", result.stdout)
print("Error:", result.stderr)
print("Exit code:", result.code)
```
### shell.spawn(cmd, args)
Runs a shell command with streaming I/O, allowing interaction with the process.
Parameters:
- `cmd`: The command to run
- `args`: Array of arguments to pass to the command
Returns a ShellStream object with methods:
- `send(data)`: Send data to the process stdin
- `kill(signal)`: Send a signal to the process
- `close()`: Close the connection
Example:
```lua
local stream = shell.spawn("cat", {})
stream.send("Hello\n")
stream.close()
```