OS
The os module allows to access to some functionalities of the underlying operating system
All the given examples assume the following imports:
let os = import('std/os');
let io = import('std/io');
Functions
Variables
exists
os.sleep(ms: int) -> nil
Pauses the program execution for ms
milliseconds. Please not that the exact sleep time might be greater than ms
because of how OS scheduler works.
Example:
io.println('Waiting a bit...');
os.sleep(1000);
io.println('Done!');
Gives the output:
Waiting a bit...
# one second later
Done!
get_env
os.get_env(var: string) -> string
Returns the content of the environment variable var
if it exists or an empty string otherwise
Example:
io.println('$HOME=', os.get_env('HOME'));
Possible output:
$HOME=/home/feral
set_env
os.set_env(var: string, value: string, overwite: bool = false) -> int
Sets the content of the environment variable var
with the content of value
. If var
already exists, it won't be overwritten unless overwrite
is true
. The function returns 0
on success and -1
on error
Example:
io.println('$FOOBAR=', os.get_env('FOOBAR'));
os.set_env('FOOBAR', 'Hello');
io.println('$FOOBAR=', os.get_env('FOOBAR'));
os.set_env('FOOBAR', 'Hello, world!');
io.println('$FOOBAR=', os.get_env('FOOBAR'));
os.set_env('FOOBAR', 'Hello, world!', true);
io.println('$FOOBAR=', os.get_env('FOOBAR'));
Gives the ouput:
$FOOBAR=
$FOOBAR=Hello
$FOOBAR=Hello
$FOOBAR=Hello, world!
exec
os.exec(cmd: string) -> int
Executes the command cmd
and returns its result. All text printed by cmd
will be redirected to the standard output
Example:
io.println(os.exec('uname'));
Possible ouput:
Linux
0
find_exec
os.find_exec(exec: string) -> string
Search in PATH
for the executable exec
and returns its path if found or an empty string otherwise
Example:
io.println(os.find_exec('ls'));
Possible ouput:
/usr/bin/ls
install
os.install(src: string, dest: string) -> int
Copies all the content of the source file or folder src
into dest
. The path leading to dest
will be created if necessary. The function returns 0
on success and -1
on error
Example:
os.install('/home/feral/Documents', '/mnt/backup');
get_cwd
os.get_cwd() -> string
Returns the current working directory
Example:
io.println(os.get_cwd());
Possible output:
/home/feral
set_cwd
os.set_cwd(wd: string) -> int
Changes the current working directory to be wd
. The function returns 0
on success and -1
on error
Example:
io.println(os.get_cwd());
os.set_cwd('/home/feral/Documents');
io.println(os.get_cwd());
Possible output:
/home/feral
/home/feral/Documents
mkdir
os.mkdir(dir...: string) -> int
Creates all given directories. The function returns 0
on success and -1
on error
Example:
os.mkdir('/home/feral/Build', '/home/feral/Tests');
rm
os.rm(path...: string) -> int
Removes all given files and directories. The function returns 0
on success and -1
on error
Example:
os.rm('/home/feral/Build', '/home/feral/Tests');
copy
os.copy(src...: string, dest: string) -> int
Copies all given files and directories to dest
. The function returns 0
on success and -1
on error
Example:
os.copy('/home/feral/Build', '/home/feral/Tests', '/tmp');
chmod
os.chmod(dest: string, mode: string = '755', recurse: bool = 'true') -> int
Changes the permission of dest
to mode
, and recursively to its content if recurse
is true
. The function returns 0
on success and -1
on error
Example:
os.chmod('/home/feral/Build', '777', false);
name
os.name: string
The name of the OS. Current possible values are linux
, macos
, bsd
and android
Example:
io.println(os.name;
Possible ouput:
linux