anchor.diff:      return;
     }
   
  +  _isDryRun = argv['dry-run'] as bool;
  +  _isVerbose = argv['verbose'] as bool;
     final concurrency = int.parse(argv['concurrency'] as String);
     final package = argv['package'] as String;
     await withProdServices(() async {
       if (package != null) {
  -      await _processPackage(package);
  +      final p = (await dbService.lookup<Package>(
  +              [dbService.emptyKey.append(Package, id: package)]))
  +          .single;
  +      await _processPackage(p);
       } else {
         final pool = Pool(concurrency);
         final futures = <Future>[];
   
         await for (Package p in dbService.query<Package>().run()) {
  -        final f = pool.withResource(() => _processPackage(p.name,
  -            packageEntityNeedsUpdate: p.additionalProperties.isNotEmpty));
  +        final f = pool.withResource(() => _processPackage(p));
           futures.add(f);
         }
   
  
positive.code:   ..addOption('concurrency',
        abbr: 'c', defaultsTo: '1', help: 'Number of concurrent processing.')
    ..addOption('package', abbr: 'p', help: 'The package to process.')
    ..addFlag('help', abbr: 'h', defaultsTo: false, help: 'Show help.');
  
  Future main(List<String> args) async {
    final argv = _argParser.parse(args);
  
negative.code: // BSD-style license that can be found in the LICENSE file.
  
  import 'dart:async';
  import 'dart:convert';
  
  import 'package:args/args.dart';
  import 'package:gcloud/db.dart';
  