mirror of
https://github.com/lune-org/docs.git
synced 2024-12-12 13:00:37 +00:00
162 lines
3.5 KiB
Markdown
162 lines
3.5 KiB
Markdown
|
# Process
|
||
|
|
||
|
Built-in functions for the current process & child processes
|
||
|
|
||
|
#### Example usage
|
||
|
|
||
|
```lua
|
||
|
local process = require("@lune/process")
|
||
|
|
||
|
-- Getting the arguments passed to the Lune script
|
||
|
for index, arg in process.args do
|
||
|
print("Process argument #" .. tostring(index) .. ": " .. arg)
|
||
|
end
|
||
|
|
||
|
-- Getting the currently available environment variables
|
||
|
local PORT: string? = process.env.PORT
|
||
|
local HOME: string? = process.env.HOME
|
||
|
for name, value in process.env do
|
||
|
print("Environment variable " .. name .. " is set to " .. value)
|
||
|
end
|
||
|
|
||
|
-- Getting the current os and processor architecture
|
||
|
print("Running " .. process.os .. " on " .. process.arch .. "!")
|
||
|
|
||
|
-- Spawning a child process
|
||
|
local result = process.spawn("program", {
|
||
|
"cli argument",
|
||
|
"other cli argument"
|
||
|
})
|
||
|
if result.ok then
|
||
|
print(result.stdout)
|
||
|
else
|
||
|
print(result.stderr)
|
||
|
end
|
||
|
```
|
||
|
|
||
|
## Properties
|
||
|
|
||
|
### os
|
||
|
|
||
|
`OS`
|
||
|
|
||
|
The current operating system being used.
|
||
|
|
||
|
Possible values:
|
||
|
|
||
|
- `"linux"`
|
||
|
- `"macos"`
|
||
|
- `"windows"`
|
||
|
|
||
|
---
|
||
|
|
||
|
### arch
|
||
|
|
||
|
`Arch`
|
||
|
|
||
|
The architecture of the processor currently being used.
|
||
|
|
||
|
Possible values:
|
||
|
|
||
|
- `"x86_64"`
|
||
|
- `"aarch64"`
|
||
|
|
||
|
---
|
||
|
|
||
|
### args
|
||
|
|
||
|
`{ string }`
|
||
|
|
||
|
The arguments given when running the Lune script.
|
||
|
|
||
|
---
|
||
|
|
||
|
### cwd
|
||
|
|
||
|
`string`
|
||
|
|
||
|
The current working directory in which the Lune script is running.
|
||
|
|
||
|
---
|
||
|
|
||
|
### env
|
||
|
|
||
|
`{ [string]: string? }`
|
||
|
|
||
|
Current environment variables for this process.
|
||
|
|
||
|
Setting a value on this table will set the corresponding environment variable.
|
||
|
|
||
|
---
|
||
|
|
||
|
## Functions
|
||
|
|
||
|
### exit
|
||
|
|
||
|
Exits the currently running script as soon as possible with the given exit code.
|
||
|
|
||
|
Exit code 0 is treated as a successful exit, any other value is treated as an error.
|
||
|
|
||
|
Setting the exit code using this function will override any otherwise automatic exit code.
|
||
|
|
||
|
#### Parameters
|
||
|
|
||
|
- `code` The exit code to set
|
||
|
|
||
|
---
|
||
|
|
||
|
### spawn
|
||
|
|
||
|
Spawns a child process that will run the program `program`, and returns a dictionary that describes
|
||
|
the final status and ouput of the child process.
|
||
|
|
||
|
The second argument, `params`, can be passed as a list of string parameters to give to the program.
|
||
|
|
||
|
The third argument, `options`, can be passed as a dictionary of options to give to the child
|
||
|
process. Refer to the documentation for `SpawnOptions` for specific option keys and their values.
|
||
|
|
||
|
#### Parameters
|
||
|
|
||
|
- `program` The program to spawn as a child process
|
||
|
|
||
|
- `params` Additional parameters to pass to the program
|
||
|
|
||
|
- `options` A dictionary of options for the child process
|
||
|
|
||
|
#### Returns
|
||
|
|
||
|
- A dictionary representing the result of the child process
|
||
|
|
||
|
---
|
||
|
|
||
|
## Types
|
||
|
|
||
|
### SpawnOptions
|
||
|
|
||
|
A dictionary of options for `process.spawn`, with the following available values:
|
||
|
|
||
|
- `cwd` - The current working directory for the process
|
||
|
- `env` - Extra environment variables to give to the process
|
||
|
- `shell` - Whether to run in a shell or not - set to `true` to run using the default shell, or a
|
||
|
string to run using a specific shell
|
||
|
- `stdio` - How to treat output and error streams from the child process - set to "inherit" to
|
||
|
pass output and error streams to the current process
|
||
|
|
||
|
---
|
||
|
|
||
|
### SpawnResult
|
||
|
|
||
|
Result type for child processes in `process.spawn`.
|
||
|
|
||
|
This is a dictionary containing the following values:
|
||
|
|
||
|
- `ok` - If the child process exited successfully or not, meaning the exit code was zero or not
|
||
|
set
|
||
|
- `code` - The exit code set by the child process, or 0 if one was not set
|
||
|
- `stdout` - The full contents written to stdout by the child process, or an empty string if
|
||
|
nothing was written
|
||
|
- `stderr` - The full contents written to stderr by the child process, or an empty string if
|
||
|
nothing was written
|
||
|
|
||
|
---
|