anchor.diff:      // files can only have the name index.html/main.dart/styles.css
       if (!files.every((file) {
         var path = file.path;
  -      return path.endsWith('index.html') ||
  -          path.endsWith('main.dart') ||
  -          path.endsWith('styles.css');
  +      return path.endsWith('index.html') || path.endsWith('main.dart') || path.endsWith('styles.css');
       })) {
         print("Skipping ${dirName}: Files can only have the name index.html/main.dart/styles.css.");
         return false;
  
positive.code:     var root = new Directory('.');
      var allDirectories = root.listSync()..retainWhere((entity) => entity is Directory);
  
      if (allDirectories.length == 1 && _isDartpadAble(root)) {
        DartSample sample = new DartSample(root);
        await sample.generateGist();
        exit(0);
      }
  
      var dartpadAbleSamples = allDirectories
        ..retainWhere(_isDartpadAble);
  
      for (Directory sampleDir in dartpadAbleSamples) {
        DartSample sample = new DartSample(sampleDir);
        await sample.generateGist();
      }
      exit(0);
    }
  
    bool _isDartpadAble(Directory dir) {
      String dirName = path.basename(dir.path);
      var children = dir.listSync(recursive: true);
      Directory web = children.firstWhere(
          (entity) => entity is Directory && entity.path.endsWith('web'),
          orElse: () => null);
  
      // not dartpadable if there is no web dir
      if (web == null) return false;
      List<File> files = web.listSync(recursive: true)
        ..retainWhere((e) => e is File);
  
      // not dartpadable if there are more than 3 files
      if (files.length > 3) {
  
negative.code:         print("Skipping ${dirName}: Dartpads can't import dart:io.");
          return false;
        }
        if (libraries.any((l) => !l.startsWith('dart:'))) {
          print("Skipping ${dirName}: Dartpads can't import packages.");
          return false;
        }
  