VILtools
Another technique to instrument tools is based on a set of command line utilities called VILtools which stands for Vov Integration Library Tools. The VILtools, shown in table below, implement the same functions as VIL but are intended for use in shell scripts.
If the environment variable VOV_FDL_ONLY is set, then the VILtools generate FDL code.
The VILtools are passive if VOV is not running or if runtime tracing has not been
activated by means of one of the wrappers vov
,
vrt
, or vw2
.
- Add the appropriate calls to
VovInput
andVovOutput
to declare the I/O behavior of the script. (To be safe, call these tools before you read or write a file and always check the exit status.) Temporary and intermediate files that are removed upon successful execution need not be declared. - Execute the integrated script within the wrapper
vov
as follows:% vov myscript arg1 arg2 arg3
VovInput
- Usage
VovInput [options] <FILE FILE ...>
- Description
- Declare the list of files as inputs. It returns 0 if the files are VALID, or 4 if there are input conflicts.
- Options
-
- -sticky
- Specify that the input is an input, even if it's not actually a true input at runtime.
- -consumed
- Specify that the input disappears if the tool completes successfully (e.g. the tool gzip consumes its input).
- -db <name>
- Specifies the database of the input, which defaults to "FILE"
- -links
- Declare as inputs all symbolic links used to canonicalize the name of file.
- -show_barrier
- Prints on stdout the name of the files on which there is an input barrier.
- -quote
- Use the input name as given, instead of mapping it to the corresponding logical canonical name.
VovOutput
- Usage
VovOutput [options] <FILE FILE ...>
- Description
- Declare the list of files as outputs. It returns 5 if there are output conflicts and 0 otherwise.
- Options
-
- -sticky
- Specify that the output is an output, even if it's not actually a true output at runtime.
- -ignore_timestamp
- Specifies that the timestamp of the file should not be used to determine whether the job has succeeded or failed.
- -db <name>
- Specifies the database of the output, which defaults to "FILE"
- -shared
- State the output is the shared by many tools. FlowTracer ignores the timestamp of the shared outputs and serializes the execution of the jobs that contribute to the shared output. In this case, all jobs must use declare the file as shared.
- -stop_barrier
- Specify there is a barrier on the output, where the barrier is effective in stopping change propagation on and output. See Runtime Change Propagation Control for more details.
- -propagate_barrier
- Specify there is a barrier on the output, where the barrier is deemed to be ineffective in stopping change propagation on this output. See Runtime Change Propagation Control for more details.
- -optional
- Specify that the output file may or may not exist.
- -links
- Declare as input (notice: 'input' and not 'output'!) all symbolic links used to canonicalize the name of file.
- -quote
- Use the output name as given, instead of mapping it to the corresponding logical canonical name.
VovExecutable
- Usage
VovExecutable <FILE FILE ...>
- Description
- Declares an executable as an input. This is equivalent to VovInput except that the argument is assumed to be an executable file and is searched for using the PATH variable.
- Options
- none
VovDelete
- Usage
VovDelete <FILE FILE ...>
- Description
- Declares an executable as an input. This is equivalent to VovInput except that the argument is assumed to be an executable file and is searched for using the PATH variable.
- Options
- none
VovToolId
- Usage
VovToolId -get
- Description
- Returns the VovId of the current transition, otherwise the string '00000000' is returned if tracing is not active.
- Options
- none