| # generic_script_wrapper | |
| This module provides a way to integrate an external command into an f4pga flow. | |
| Its inputs and outputs are fully defined by the author of flow definition. | |
| ## Parameters | |
| Parameters are everything when it comes to this module: | |
| * `stage_name` (string, optional): Name describing the stage | |
| * `script` (string, mandatory): Path to the script to be executed | |
| * `interpreter` (string, optional): Interpreter for the script | |
| * `cwd` (string, optional): Current Working Directory for the script | |
| * `outputs` (dict[string -> dict[string -> string]], | |
| mandatory): | |
| A dict with output descriptions (dicts). Keys name output dependencies. | |
| * `mode` (string, mandatory): "file" or "stdout". Describes how the output is | |
| grabbed from the script. | |
| * `file` (string, required if `mode` is "file"): Name of the file generated by the | |
| script. | |
| * `target` (string, required): Default name of the file of the generated | |
| dependency. You can use all values available during map_io stage. Each input | |
| dependency also gets two extra values associated with it: | |
| `:dependency_name[noext]`, which contains the path to the dependency the | |
| extension with anything after last "." removed and `:dependency_name[dir]` which | |
| contains directory paths of the dependency. This is useful for deriving an output | |
| name from the input. | |
| * `meta` (string, optional): Description of the output dependency. | |
| * `inputs` (dict[string -> string | bool], mandatory): | |
| A dict with input descriptions. Key is can be a name of a named argument, a | |
| position of unnamed argument, when prefaced with "#" (eg. "#1"), or a name of an | |
| environmental variable, when prefaced with "$". Positions are indexed | |
| from 1, as it's a convention that 0th argument is the path of the executed program. | |
| Values are strings that can contain references to variables to be resolved | |
| after the project flow configuration is loaded (that means they can reference | |
| values and dependencies which are to be set by the user). All of modules inputs | |
| will be determined by the references used. Thus dependency and value definitions | |
| are implicit. If the value of the resolved string is empty and is associated with a | |
| named argument, the argument in question will be skipped entirely. This allows | |
| using optional dependencies. To use a named argument as a flag instead, set it to | |
| `true`. |