anchor.diff:    }
   }
   
  -class StatsCommand {
  -  @SubCommand(help: 'See stats')
  -  stats() {}
  +class QuotaCommand {
  +  @SubCommand(help: 'prints out quota information for this drive')
  +  quota() async {
  +    drive.About about = await api.about.get();
  +    num free = num.parse(about.quotaBytesTotal) - num.parse(about.quotaBytesUsed);
  +    print('''
  +      Name : ${about.name}
  +      Account type : : ${about.quotaType}
  +      Bytes used : ${about.quotaBytesUsed} (${prettySize(about.quotaBytesUsed)})
  +      Bytes free : ${free} (${prettySize(free)})
  +      Bytes InTrash : ${about.quotaBytesUsedInTrash} (${prettySize(about.quotaBytesUsedInTrash)})
  +      Total bytes : ${about.quotaBytesTotal} (${prettySize(about.quotaBytesTotal)})
  +      ''');
  +  }
  +}
  +
  +prettySize(bytes) {
  +  if(bytes is String){
  +    bytes = num.parse(bytes);
  +  }
  +  var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
  +  if (bytes == 0) return '0 Bytes';
  +  var i = (math.log(bytes) / math.log(1024)).floor();
  +  return "${(bytes / math.pow(1024, i)).round()} ${sizes[i]}";
   }
   
   class ListCommand {
  
positive.code: import 'package:googleapis/drive/v2.dart' as drive;
  import 'dart:convert';
  import 'dart:io';
  
  class Credentials {
    String clientId;
  
negative.code:     f.writeAsStringSync(Credentials.toJson(credentials));
    }
  
    api = new drive.DriveApi(c);
    drive.FileList fileList = await api.files.list();
  
    fileList.items.forEach((drive.File f) => print("${f.id} ${f.originalFilename}"));
  
    c.close();
  
    arguments = ['quota'];//, '--help'];
    declare(Ddrive).execute(arguments);
  }
  
  class Ddrive extends Object with
    QuotaCommand,
    ListCommand,
    InitCommand {
  
  