private transient FlowNode node;
@Override
public boolean start() throws Exception {
CpsStepContext cps = (CpsStepContext) getContext();
CpsThread t = CpsThread.current();
GroovyShell shell = t.getExecution().getShell();
Script script = shell.parse(cwd.child(step.getPath()).readToString());
node.addAction(new LabelAction("Loaded script: "+step.getPath()));
// execute body as another thread that shares the same head as this thread
// as the body can pause.
cps.invokeBodyLater(
t.getGroup().export(script),
Collections.<Action>emptyList()
).addCallback(cps); // when the body is done, the load step is done
return false;
}