This program is a part of the Middleman System (mdm).
Each line of the iospec file specifies the I/O behavior of a program, unless the line starts with a '#' character, in which case the line is treated as comments and ignored. The format is as follows:
program names the program whose behavior you are specifying. For each spec element, the first character indicates usage, and the remaining characters indicate resource.
A resource that starts with a '-' character represents the argument of the corresponding program option. A resource that is an empty string represents a program argument. A resource that is not empty and does not start with a '-' character represents the resource string itself.
A usage is typically an upper-case character. If two commands access the same resource with different usage, mdm-master will not run these two commands at the same time. Furthermore, if a command access a resource with 'W' usage, mdm-master will not run it with any command that access the same resource in any way (including 'W'). There is a special case: if usage is '0' and resource starts with a '-' character, it means that the resource program option does not take any arguments.
All programs has an implicit spec 'Rglobal', so if you mark a program as 'Wglobal', it will not run while any other command is running.
Here is an example to help clarify matters. Suppose we have the following iospec file:
Then these two commands can run at the same time:
These two commands cannot run at the same time:
And these two commands also cannot run at the same time:
Since we run find under mdm.screen and invoking gunzip under mdm-run, we specify that we wish to run the gunzip commands in parallel.