anchor.diff:      });
   }
   
  -Future<bool> _dartDoc(TaskContext ctx, TempDir outputDir, Collection<String> libs,
  -    String packageDir) {
  -  final args = ['--pkg', packageDir, '--omit-generation-time', '--out', outputDir.path, '--verbose'];
  +Future _doDocsPopulate(TaskContext ctx, TempDir dir, Collection<String> libs,
  +                       String packageDir, List<String> excludeList, bool linkApi) {
  +  final args = ['--pkg', packageDir, '--omit-generation-time', '--out', dir.path, '--verbose'];
  +
  +  if(linkApi) {
  +    args.add('--link-api');
  +  }
  +
  +  if(!excludeList.isEmpty) {
  +    args.add('--exclude-lib');
  +    args.add(excludeList.join(','));
  +  }
   
     args.addAll(libs);
  -  ctx.fine("Generating docs into: $outputDir");
  +  ctx.fine("Generating docs into: $dir");
   
     final sublogger = ctx.getSubLogger('dartdoc');
   
  -  return startProcess(sublogger, "dartdoc", args);
  +  return startProcess(sublogger, "dartdoc", args)
  +      .then((bool dartDocSuccess) {
  +        if(!dartDocSuccess) {
  +          ctx.fail('The dartdoc process failed.');
  +        }
  +
  +        // yeah, silly. ctx.fail should blow up. Should not get heer
  +        assert(dartDocSuccess);
  +      });
   }
  
positive.code:         }
  
          return true;
        });
  }
  
  Future _doDocsPopulate(TaskContext ctx, TempDir dir, Collection<String> libs, String packageDir) {
    return _dartDoc(ctx, dir, libs, packageDir)
        .then((bool dartDocSuccess) {
          if(!dartDocSuccess) {
            ctx.fail('The dartdoc process failed.');
          }
  
          // yeah, silly. ctx.fail should blow up. Should not get heer
          assert(dartDocSuccess);
        });
  }
  
  
negative.code: // TODO: add post-build options to pretty-up the docs
  
  Task getCompileDocsFunc(String targetBranch, String packageDir,
                          Func<Future<List<String>>> libGetter,
                          {Iterable<String> excludeLibs, bool linkApi: false}) {
    return new Task.async((ctx) => compileDocs(ctx, targetBranch, libGetter,
        packageDir, excludeLibs: excludeLibs, linkApi: linkApi),
        'Generate documentation for the provided libraries.');
  }
  
  Future<bool> compileDocs(TaskContext ctx, String targetBranch,
      Func<Future<List<String>>> libGetter, String packageDir,
      {Iterable<String> excludeLibs, bool linkApi: false}) {
  
    final excludeList = excludeLibs == null ? [] : excludeLibs.toList();
  
    final parser = _getDartDocParser();
    final parseResult = _helpfulParseArgs(ctx, parser, ctx.arguments);
  