anchor.diff:  }
   
   abstract class BaseJefeCommand extends Command {
  -  addGitUri() =>
  -      argParser.addOption('gitUri',
  -          help: 'The git Uri containing the jefe.yaml.', abbr: 'g');
  -
  -  addInstallDirectory() =>
  -      argParser.addOption('installDirectory',
  -          help: 'The directory to install into', abbr: 'd', defaultsTo: '.');
  -
  -  addContainerDirectory() =>
  -      argParser.addOption('containerDirectory',
  -          help: 'The directory that contains the projects',
  -          abbr: 'd',
  -          defaultsTo: '.');
  -
  -  addSkipCheckout() =>
  -      argParser.addFlag('skipCheckout',
  -          help: 'Skips the checkout of the develop branch',
  -          abbr: 's',
  -          defaultsTo: false);
  -
  -  addRootDirectory() =>
  -      argParser.addOption('rootDirectory',
  -          help: 'The directory that contains the root of the projecs',
  -          abbr: 'd',
  -          defaultsTo: '.');
  -
  -  addProjects() =>
  -      argParser.addOption('projects',
  -          help:
  +  addGitUri() => argParser.addOption('gitUri',
  +      help: 'The git Uri containing the jefe.yaml.', abbr: 'g');
  +
  +  addInstallDirectory() => argParser.addOption('installDirectory',
  +      help: 'The directory to install into', abbr: 'd', defaultsTo: '.');
  +
  +  addContainerDirectory() => argParser.addOption('containerDirectory',
  +      help: 'The directory that contains the projects',
  +      abbr: 'd',
  +      defaultsTo: '.');
  +
  +  addSkipCheckout() => argParser.addFlag('skipCheckout',
  +      help: 'Skips the checkout of the develop branch',
  +      abbr: 's',
  +      defaultsTo: false);
  +
  +  addRootDirectory() => argParser.addOption('rootDirectory',
  +      help: 'The directory that contains the root of the projecs',
  +      abbr: 'd',
  +      defaultsTo: '.');
  +
  +  addProjects() => argParser.addOption('projects',
  +      help:
             'A project name filter. Only projects whose name contains the text will run',
  -          abbr: 'p');
  -
  -  String get gitUri() => argResults['gitUri'];
  -
  -  String get installDirectory() => argResults['installDirectory'];
  -
  -  String get containerDirectory() => argResults['containerDirectory'];
  -
  -  String get rootDirectory() => argResults['rootDirectory'];
  -
  -  bool get skipCheckout() => argResults['skipCheckout'];
  -
  -  String get projects() => argResults['projects'];
  +      abbr: 'p');
  +
  +  String get gitUri => argResults['gitUri'];
  +
  +  String get installDirectory => argResults['installDirectory'];
  +
  +  String get containerDirectory => argResults['containerDirectory'];
  +
  +  String get rootDirectory => argResults['rootDirectory'];
  +
  +  bool get skipCheckout => argResults['skipCheckout'];
  +
  +  String get projects => argResults['projects'];
   }
   
   class Install extends BaseJefeCommand {
  
positive.code: 
    exec(String command, List<String> args,
        {String rootDirectory: '.',
          String projects,
          bool executeSerially: false}) async {
      final graph = await _loadGraph(rootDirectory);
  
      final processCommands = graph
          .multiProjectCommands(
          projectFilter: projectNameFilter(projects),
          defaultConcurrencyMode: executeSerially
              ? CommandConcurrencyMode.serialDepthFirst
              : CommandConcurrencyMode.concurrentProject)
          .processCommands;
  
      final result = await processCommands.execute(command, args);
  
negative.code: 
  main(List<String> arguments) {
    final runner =
        CommandRunner('jefe', 'Manages a set of related Dart projects');
    runner
      ..addCommand(Install())
      ..addCommand(Init())
      ..addCommand(Jefetise())
      ..addCommand(Start())
      ..addCommand(Finish())
      ..addCommand(Exec())
      ..addCommand(SetDependencies())
      ..addCommand(Test())
      ..addCommand(Release());
  
    Chain.capture(() {
      runner.run(arguments);
  