process
Built-in functions for the current process & child processes
Example usage
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
arch
The architecture of the processor currently being used.
Possible values:
"x86_64"
"aarch64"
cwd
The current working directory in which the Lune script is running.
os
The current operating system being used.
Possible values:
"linux"
"macos"
"windows"
Functions
exit
function Process.exit(code: number?)
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.
spawn
function Process.spawn(program: string, params: { string }?, options: SpawnOptions?)
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.
Types
Arch
type Arch = "x86_64" | "aarch64"
OS
type OS = "linux" | "macos" | "windows"
SpawnOptions
type SpawnOptions = {
cwd: string?,
env: { [string]: string }?,
shell: (boolean | string)?,
stdio: SpawnOptionsStdio?,
}
A dictionary of options for process.spawn
, with the following available values:
cwd
- The current working directory for the processenv
- Extra environment variables to give to the processshell
- Whether to run in a shell or not - set totrue
to run using the default shell, or a string to run using a specific shellstdio
- How to treat output and error streams from the child process - set to "inherit" to pass output and error streams to the current process
SpawnOptionsStdio
type SpawnOptionsStdio = "inherit" | "default"
SpawnResult
type SpawnResult = {
ok: boolean,
code: number,
stdout: string,
stderr: string,
}
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 setcode
- The exit code set by the child process, or 0 if one was not setstdout
- The full contents written to stdout by the child process, or an empty string if nothing was writtenstderr
- The full contents written to stderr by the child process, or an empty string if nothing was written
Last updated