-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathos.d.ts
More file actions
199 lines (185 loc) · 8.46 KB
/
os.d.ts
File metadata and controls
199 lines (185 loc) · 8.46 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
// Based on https://www.lua.org/manual/5.3/manual.html#6.9
/** @noSelfInFile */
interface LuaDateInfo {
year: number;
month: number;
day: number;
hour?: number;
min?: number;
sec?: number;
isdst?: boolean;
}
interface LuaDateInfoResult {
year: number;
month: number;
day: number;
hour: number;
min: number;
sec: number;
isdst: boolean;
yday: number;
wday: number;
}
/**
* Operating System Facilities
*/
declare namespace os {
/**
* Returns an approximation of the amount in seconds of CPU time used by the
* program.
*/
function clock(): number;
/**
* Returns a string or a table containing date and time, formatted according
* to the given string format.
*
* If the time argument is present, this is the time to be formatted (see the
* os.time function for a description of this value). Otherwise, date formats
* the current time.
*
* If format starts with '!', then the date is formatted in Coordinated
* Universal Time. After this optional character, if format is the string
* "*t", then date returns a table with the following fields: year, month
* (1–12), day (1–31), hour (0–23), min (0–59), sec (0–61), wday (weekday,
* 1–7, Sunday is 1), yday (day of the year, 1–366), and isdst (daylight
* saving flag, a boolean). This last field may be absent if the information
* is not available.
*
* If format is not "*t", then date returns the date as a string, formatted
* according to the same rules as the ISO C function strftime.
*
* When called without arguments, date returns a reasonable date and time
* representation that depends on the host system and on the current locale.
* (More specifically, os.date() is equivalent to os.date("%c").)
*
* On non-POSIX systems, this function may be not thread safe because of its
* reliance on C function gmtime and C function localtime.
*/
function date(format?: string, time?: number): string;
/**
* Returns a string or a table containing date and time, formatted according
* to the given string format.
*
* If the time argument is present, this is the time to be formatted (see the
* os.time function for a description of this value). Otherwise, date formats
* the current time.
*
* If format starts with '!', then the date is formatted in Coordinated
* Universal Time. After this optional character, if format is the string
* "*t", then date returns a table with the following fields: year, month
* (1–12), day (1–31), hour (0–23), min (0–59), sec (0–61), wday (weekday,
* 1–7, Sunday is 1), yday (day of the year, 1–366), and isdst (daylight
* saving flag, a boolean). This last field may be absent if the information
* is not available.
*
* If format is not "*t", then date returns the date as a string, formatted
* according to the same rules as the ISO C function strftime.
*
* When called without arguments, date returns a reasonable date and time
* representation that depends on the host system and on the current locale.
* (More specifically, os.date() is equivalent to os.date("%c").)
*
* On non-POSIX systems, this function may be not thread safe because of its
* reliance on C function gmtime and C function localtime.
*/
function date(format: '*t', time?: number): LuaDateInfoResult;
/**
* Returns the difference, in seconds, from time t1 to time t2 (where the
* times are values returned by os.time). In POSIX, Windows, and some other
* systems, this value is exactly t2-t1.
*/
function difftime(t1: number, t2: number): number;
/**
* Returns the value of the process environment variable varname, or nil if
* the variable is not defined.
*/
function getenv(varname: string): string | undefined;
/**
* Deletes the file (or empty directory, on POSIX systems) with the given
* name. If this function fails, it returns nil, plus a string describing the
* error and the error code. Otherwise, it returns true.
*/
function remove(filename: string): LuaMultiReturn<[true] | [undefined, string]>;
/**
* Renames the file or directory named oldname to newname. If this function
* fails, it returns nil, plus a string describing the error and the error
* code. Otherwise, it returns true.
*/
function rename(oldname: string, newname: string): LuaMultiReturn<[true] | [undefined, string]>;
/**
* Sets the current locale of the program. locale is a system-dependent string
* specifying a locale; category is an optional string describing which
* category to change: "all", "collate", "ctype", "monetary", "numeric", or
* "time"; the default category is "all". The function returns the name of the
* new locale, or nil if the request cannot be honored.
*
* If locale is the empty string, the current locale is set to an
* implementation-defined native locale. If locale is the string "C", the
* current locale is set to the standard C locale.
*
* When called with nil as the first argument, this function only returns the
* name of the current locale for the given category.
*
* This function may be not thread safe because of its reliance on C function
* setlocale.
*/
function setlocale(
locale?: string,
category?: 'all' | 'collate' | 'ctype' | 'monetary' | 'numeric' | 'time'
): string | undefined;
/**
* Returns the current time when called without arguments, or a time
* representing the local date and time specified by the given table. This
* table must have fields year, month, and day, and may have fields hour
* (default is 12), min (default is 0), sec (default is 0), and isdst (default
* is nil). Other fields are ignored. For a description of these fields, see
* the os.date function.
*
* The values in these fields do not need to be inside their valid ranges. For
* instance, if sec is -10, it means -10 seconds from the time specified by
* the other fields; if hour is 1000, it means +1000 hours from the time
* specified by the other fields.
*
* The returned value is a number, whose meaning depends on your system. In
* POSIX, Windows, and some other systems, this number counts the number of
* seconds since some given start time (the "epoch"). In other systems, the
* meaning is not specified, and the number returned by time can be used only
* as an argument to os.date and os.difftime.
*/
function time(): number;
/**
* Returns the current time when called without arguments, or a time
* representing the local date and time specified by the given table. This
* table must have fields year, month, and day, and may have fields hour
* (default is 12), min (default is 0), sec (default is 0), and isdst (default
* is nil). Other fields are ignored. For a description of these fields, see
* the os.date function.
*
* The values in these fields do not need to be inside their valid ranges. For
* instance, if sec is -10, it means -10 seconds from the time specified by
* the other fields; if hour is 1000, it means +1000 hours from the time
* specified by the other fields.
*
* The returned value is a number, whose meaning depends on your system. In
* POSIX, Windows, and some other systems, this number counts the number of
* seconds since some given start time (the "epoch"). In other systems, the
* meaning is not specified, and the number returned by time can be used only
* as an argument to os.date and os.difftime.
*/
function time(table: LuaDateInfo): number;
/**
* Returns a string with a file name that can be used for a temporary file.
* The file must be explicitly opened before its use and explicitly removed
* when no longer needed.
*
* On POSIX systems, this function also creates a file with that name, to
* avoid security risks. (Someone else might create the file with wrong
* permissions in the time between getting the name and creating the file.)
* You still have to open the file to use it and to remove it (even if you do
* not use it).
*
* When possible, you may prefer to use io.tmpfile, which automatically
* removes the file when the program ends.
*/
function tmpname(): string;
}