anchor.diff:  // - Remove test
   // - Zip the content of build/chrome-app-spark to dist/spark.zip
   void archive(GrinderContext context) {
  -  if (Platform.isWindows) {
  -    _delete('dist/spark.zip');
  -
  -    try {
  -      // 7z a -r ..\dist\spark.zip .
  -      runProcess(
  -          context,
  -          '7z',
  -          arguments: ['a', '-r', '../${DIST_DIR.path}/spark.zip', '.'],
  -          workingDirectory: 'app',
  -          quiet: true);
  -    } on ProcessException catch(e) {
  -      context.fail("Unable to execute 7z.\n"
  -        "Please install 7zip. Add 7z directory to the PATH environment variable.");
  -    };
  -  } else {
  -    // zip spark.zip . -r -q -x .*
  -    runProcess(
  -        context,
  -        'zip',
  -        arguments: ['../${DIST_DIR.path}/spark.zip', '.', '-qr', '-x', '.*'],
  -        workingDirectory: 'app');
  -  }
  -
  -  _printSize(context, getFile('dist/spark.zip'));
  +  String sparkZip = '${DIST_DIR.path}/spark.zip';
  +  _delete(sparkZip);
  +  _zip(context, 'app', '../${sparkZip}');
  +  _printSize(context, getFile(sparkZip));
   }
   
   void docs(GrinderContext context) {
  
positive.code: 
    // delete the build/ dir
    getDir('build').deleteSync(recursive: true);
  }
  
  void _polymerDeploy(GrinderContext context, Directory sourceDir, Directory destDir) {
  
negative.code:   }
  }
  
  // TODO(sunglim): Fix me. This doesn't support Windows.
  String _getCommandOutput(String command) {
    return Process.runSync('/bin/sh', ['-c', command]).stdout.trim();
  }
  