function
Library: Process execution (OMPROCESS)
Import : omprocess.xmd |
Returns: The return code generated by executing the specified process |
export integer function execute value command-line-type command-line in-directory value string initial-directory optional stdin value string source stdin optional stdout value string sink stdout optional stderr value string sink stderr optional environment read-only string environment optional
Argument definitions
The execute
function launches the execution of a program external to OmniMark, using the provided command-line. The program is fed its
input from the stdin argument; the stdout argument can be used to process the output generated by the program. Similarly, the stderr argument can be used to process the error stream from the program. If stdin is not specified, it defaults to an empty string, whereas if either or both of stdout and stderr are not specified, they default to #suppress
.
The environment shelf is used to specify a set of environment variables that are provided to the process when it is launched. The value of each item on the environment shelf should have the form
NAME=VALUEwhere
VALUE
may be a zero-length string. The shelf item keys are not used, and need not be set to anything. On both Unix and Windows platforms, the ENVIRONMENT shelf represents the entire environment
variable space of the process: its items are not merged with any
pre-existing environment variables. In the case where any pre-existing
environment variables should be preserved, the following procedure
should be followed:
import "omutil.xmd" prefixed by util. process local string environment variable repeat over util.environment as e set new environment to key of e || "=" || e again ; Add any additional environment variables.
Following this, the local shelf environment will contain the appropriately-merged set of environment variables, and can be passed to the execute
function.
When the execute
function terminates, its value is the return code
provided by the execution of the program.
The following exceptions may occur: