cleanCoverageFile method

File cleanCoverageFile(
  1. List<Glob> globs,
  2. String pathToCoverageFile
)

Implementation

File cleanCoverageFile(List<Glob> globs, String pathToCoverageFile) {
  final f = File(pathToCoverageFile);

  bool keep = true;

  bool keeper(String line) {
    if (line.startsWith('SF:') && matchesGlob(globs, line)) {
      keep = false;
    } else {
      if (!keep && line == 'end_of_record') {
        keep = true;
        return false;
      }
    }
    return keep;
  }

  f
      .readAsLines()
      .then((lines) => f.writeAsString(lines.where(keeper).join('\n')));

  return f;
}