function executeCommands(src, cmds)
  
  try
    for kk=1:numel(cmds)
      disp(sprintf('$$$ executing: %s', cmds{kk}));
      evalin('base', cmds{kk});
      if isa(src, 'LTPDAworkbench')
        awtinvoke(src.mp, 'updateProgressOfCurrentDiagram');
      end
      drawnow;
    end
    
  catch err
    newErr = MException('LTPDA:runPipeline', 'Can not execute: %s', cmds{kk});
    err = err.addCause(newErr);
    throw(err);
  end
  
end
