anchor.diff:        endpointsServer.server = server;
         return endpointsServer;
       });
  +  }
  +
  +  static Future<String> generateDiscovery(String sdkPath,
  +                                          String serverUrl) async {
  +    var commonServer = new CommonServer(sdkPath, new _Logger(), new _Cache());
  +    var apiServer = new ApiServer(prettyPrint: true)..addApi(commonServer);
  +    apiServer.enableDiscoveryApi(serverUrl, '/api');
  +    var request =
  +        new HttpApiRequest('GET',
  +                           'discovery/v1/apis/dartservices/v1/rest',
  +                           {}, 'application/json', new Stream.fromIterable([]));
  +    HttpApiResponse response = await apiServer.handleHttpRequest(request);
  +    return UTF8.decode(await response.body.first);
     }
   
     final int port;
  
positive.code: library services;
  
  import 'dart:async';
  import 'dart:io';
  
  import 'package:args/args.dart';
  
negative.code:   var parser = new ArgParser();
    parser.addOption('port', abbr: 'p', defaultsTo: '8080');
    parser.addOption('dart-sdk');
    parser.addFlag('discovery');
    parser.addOption('server-url', defaultsTo: 'http://localhost');
  
    var result = parser.parse(args);
    var port = int.parse(result['port'], onError: (val) {
  