SystemCommand
Runs system commands via a shell.
user
Container for user-defined plugs. Nodes should never make their own plugs here, so users are free to do as they wish.
preTasks
Input connections to upstream nodes which must be executed before this node.
postTasks
Input connections to nodes which must be executed after this node, but which don’t need to be executed before downstream nodes.
task
Output connections to downstream nodes which must not be executed until after this node.
dispatcher
Container for custom plugs which dispatchers use to control their behaviour.
dispatcher.batchSize
Maximum number of frames to batch together when dispatching tasks.
If the node requires sequence execution batchSize
will be ignored.
dispatcher.immediate
Causes this node to be executed immediately upon dispatch, rather than have its execution be scheduled normally by the dispatcher. For instance, when using the LocalDispatcher, the node will be executed immediately in the dispatching process and not in a background process as usual.
When a node is made immediate, all upstream nodes are automatically considered to be immediate too, regardless of their settings.
command
The command to be run. This may reference values from substitutions with ‘{substitutionName}’ syntax.
shell
When enabled, the specified command is interpreted as a shell command and run in a child shell. This allows semantics such as pipes to be used. Otherwise the supplied command is invoked directly as an executable and its args.
Note
On MacOS with System Integrity Protection enabled, child
shells will not inherit DYLD_LIBRARY_PATH
from the Gaffer
process. If the executable you are running relies on this,
disabling shell should allow it to inherit the full Gaffer
environment.
substitutions
An arbitrary set of name/value pairs which can be referenced in command with ‘{substitutionsName}’ syntax.
environmentVariables
An arbitrary set of name/value pairs which will be set as environment variables when running the command.