aboutsummaryrefslogtreecommitdiffhomepage
path: root/core/.os.luadoc
blob: 03d76bca76600450fa78233c23c89d79d26d691d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
-- Copyright 2007-2020 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