From bca79d12c0ffeafdfaf626afeccc882b1f433b31 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Adri=C3=A1n=20Arroyo=20Calle?= Date: Sun, 22 Jan 2023 17:45:50 +0100 Subject: [PATCH] Compatible Doclog docs for library(os) --- src/lib/os.pl | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/lib/os.pl b/src/lib/os.pl index 448b5f74..5d31b5ce 100644 --- a/src/lib/os.pl +++ b/src/lib/os.pl @@ -12,6 +12,12 @@ Public domain code. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/** Predicates for reasoning about the operating system (OS) environment. + +This includes predicates about environment variables, calls to shell and +finding out the PID of the running system. +*/ + :- module(os, [getenv/2, setenv/2, unsetenv/1, @@ -24,25 +30,60 @@ :- use_module(library(lists)). :- use_module(library(si)). +%% getenv(+Key, -Value). +% +% True iff Value contains the value of the environment variable Key. +% Example: +% +% ``` +% ?- getenv("LANG", Ls). +% Ls = "en_US.UTF-8". +% ``` getenv(Key, Value) :- must_be_env_var(Key), '$getenv'(Key, Value). +%% setenv(+Key, +Value). +% +% Sets the environment variable Key to Value setenv(Key, Value) :- must_be_env_var(Key), must_be_chars(Value), '$setenv'(Key, Value). +%% unsetenv(+Key). +% +% Unsets the environment variable Key unsetenv(Key) :- must_be_env_var(Key), '$unsetenv'(Key). +%% shell(+Command) +% +% Equivalent to `shell(Command, 0)`. shell(Command) :- shell(Command, 0). + +%% shell(+Command, -Status). +% +% True iff executes Command in a shell of the operating system and the exit code is Status. +% Keep in mind the shell syntax is dependant on the operating system, so it should be +% used very carefully. +% +% Example (using Linux and fish shell): +% +% ``` +% ?- shell("echo $SHELL", Status). +% /bin/fish +% Status = 0. +% ``` shell(Command, Status) :- must_be_chars(Command), can_be(integer, Status), '$shell'(Command, Status). +%% pid(-PID). +% +% True iff PID is the process identification number of current Scryer Prolog instance. pid(PID) :- can_be(integer, PID), '$pid'(PID). -- 2.54.0