Next: io.file, Previous: io.call_system, Up: Top [Contents]
%--------------------------------------------------%
% vim: ft=mercury ts=4 sw=4 et
%--------------------------------------------------%
% Copyright (C) 1993-2012 The University of Melbourne.
% Copyright (C) 2013-2022, 2025 The Mercury team.
% This file is distributed under the terms specified in COPYING.LIB.
%--------------------------------------------------%
%
% File: io.environment.m.
% Stability: high.
%
% This provides read and write access to the environment variables
% inherited by this process from its parent process.
%
%--------------------------------------------------%
%--------------------------------------------------%
:- module io.environment.
:- interface.
:- import_module maybe.
%--------------------------------------------------%
% The following predicates provide an interface to the environment list.
% Do not attempt to put spaces or '=' signs in the names of environment
% variables, or bad things may result!
%
% First argument is the name of the environment variable. Returns
% yes(Value) if the variable was set (Value will be set to the value
% of the variable) and no if the variable was not set.
%
:- pred get_environment_var(string::in, maybe(string)::out,
io::di, io::uo) is det.
% First argument is the name of the environment variable, second argument
% is the value to be assigned to that variable. Res is 'ok' on success or
% 'error(ErrorCode)' if the system runs out of environment space or if
% the environment cannot be modified.
%
% Note that the environment cannot be modified on Java.
%
:- pred set_environment_var(string::in, string::in, io.res::out,
io::di, io::uo) is det.
% Same as set_environment_var/5, but throws an exception if an error
% occurs.
%
:- pred set_environment_var(string::in, string::in, io::di, io::uo) is det.
% Test if the set_environment_var/{4,5} predicates are available.
% This is false for Java backends.
%
:- pred have_set_environment_var is semidet.
% Return a map containing all the environment variables in the current
% environment, together with their values.
%
:- pred get_environment_var_map(environment_var_map::out,
io::di, io::uo) is det.
%--------------------------------------------------%
%--------------------------------------------------%