searchSysCache function

Future<List<Map>> searchSysCache (
  1. String uri
)

Implementation

Future<List<Map>> searchSysCache(String uri) async {
  // Config.ppLogger.d('searchSysCache $uri');
  var syscacheRoot = Config.home + '/.pub-cache/hosted/pub.dartlang.org';
  var syscache = Directory(syscacheRoot).listSync();
  // DO NOT omit this type annotation, doing so breaks the code
  List<Map> syscachePkgs = [];
  if (uri == null) {
    // null uri means get all
    var base;
    var parts;
    // var version;
    syscache.retainWhere((pkg) {
      parts = path.basename(pkg.path).split('-');
      base = parts[0];
      // Config.logger.v(base);
      return base.endsWith(Config.appSfx);
    });
    if (Config.debug) {
      Config.logger
          .d('found ${syscache.length} plugins in syscache ($syscacheRoot).');
    }
  } else {
    syscache.retainWhere((pkg) => path.basename(pkg.path).startsWith(uri));
  }
  var ty;
  syscache.forEach((pkg) async {
    // print('plugin path: ${pkg.path}');
    ty = loadYamlFileSync(pkg.path + '/pubspec.yaml');
    var pspec = {
      'name': path.basename(pkg.path).split('-')[0],
      'version': path.basename(pkg.path).split('-')[1],
      'docstring': ty['description'], //FIXME
      'rootUri': path.canonicalize(pkg.path),
      'scope': 'sys'
    };
    syscachePkgs.add(pspec);
  });
  // Config.ppLogger.d('syscachePkgs: $syscachePkgs');
  // return syscachePkgs.toList();

  // var ty;
  // syscache.forEach((pkg) async {
  //   // print('plugin path: ${pkg.path}');
  //   ty = loadYamlFileSync(pkg.path + '/pubspec.yaml');
  //   var pspec = {
  //     'name': path.basename(pkg.path).split('-')[0],
  //     'version': path.basename(pkg.path).split('-')[1],
  //     'docstring': ty['description'], //FIXME
  //     'rootUri': pkg.path,
  //     'scope': 'sys'
  //   };
  //   syscachePkgs.add(pspec);
  // });
  // syscachePkgs = [
  //   for (var pkg in syscache)

  //     {
  //       'name': path.basename(pkg.path).split('-')[0],
  //       'version': path.basename(pkg.path).split('-')[1],
  //       // 'docstring' : '

  //       'rootUri': pkg.path,
  //       'scope': 'sys'
  //     }
  // ];
  // }
  // Config.debugLogger.d('SYSCACHE: $syscachePkgs');
  return syscachePkgs; //.toList();
}