-- Copyright 2007-2022 Mitchell. See LICENSE. -- This is a DUMMY FILE used for making LuaDoc for built-in functions in the os table. --- Extends Lua's `os` library to provide process spawning capabilities. module('os') --- -- Spawns an interactive child process *cmd* in a separate thread, returning a handle to that -- process. -- On Windows, *cmd* is passed to `cmd.exe`: `%COMSPEC% /c [cmd]`. -- At the moment, only the Windows terminal version spawns processes in the same thread. -- @param cmd A command line string that contains the program's name followed by arguments to -- pass to it. `PATH` is searched for program names. -- @param cwd Optional current working directory (cwd) for the child process. When omitted, -- the parent's cwd is used. -- @param env Optional map of environment variables for the child process. When omitted, -- Textadept's environment is used. -- @param stdout_cb Optional Lua function that accepts a string parameter for a block of standard -- output read from the child. Stdout is read asynchronously in 1KB or 0.5KB blocks (depending -- on the platform), or however much data is available at the time. -- At the moment, only the Win32 terminal version sends all output, whether it be stdout or -- stderr, to this callback after the process finishes. -- @param stderr_cb Optional Lua function that accepts a string parameter for a block of -- standard error read from the child. Stderr is read asynchronously in 1KB or 0.5kB blocks -- (depending on the platform), or however much data is available at the time. -- @param exit_cb Optional Lua function that is called when the child process finishes. The -- child's exit status is passed. -- @return proc or nil plus an error message on failure -- @usage os.spawn('lua ' .. buffer.filename, print) -- @usage proc = os.spawn('lua -e "print(io.read())"', print) -- proc:write('foo\n') -- @class function -- @name os.spawn local spawn --- -- Returns the status of process *spawn_proc*, which is either "running" or "terminated". -- @return "running" or "terminated" function spawn_proc:status() end --- -- Blocks until process *spawn_proc* finishes (if it has not already done so) and returns its -- status code. -- @return integer status code function spawn_proc:wait() end --- -- Reads and returns stdout from process *spawn_proc*, according to string format or number *arg*. -- Similar to Lua's `io.read()` and blocks for input. *spawn_proc* must still be running. If -- an error occurs while reading, returns `nil`, an error code, and an error message. -- Ensure any read operations read all stdout available, as the stdout callback function passed -- to `os.spawn()` will not be called until the stdout buffer is clear. -- @param arg Optional argument similar to those in Lua's `io.read()`, but "n" is not -- supported. The default value is "l", which reads a line. -- @return string of bytes read function spawn_proc:read(arg) end --- -- Writes string input to the stdin of process *spawn_proc*. -- Note: On Linux, if more than 65536 bytes (64K) are to be written, it is possible those -- bytes need to be written in 65536-byte (64K) chunks, or the process may not receive all -- input. However, it is also possible that there is a limit on how many bytes can be written -- in a short period of time, perhaps 196608 bytes (192K). -- @param ... Standard input for *spawn_proc*. function spawn_proc:write(...) end --- -- Closes standard input for process *spawn_proc*, effectively sending an EOF (end of file) to it. function spawn_proc:close() end --- -- Kills running process *spawn_proc*, or sends it Unix signal *signal*. -- @param signal Optional Unix signal to send to *spawn_proc*. The default value is 9 (`SIGKILL`), -- which kills the process. function spawn_proc:kill() end