cleanCode function

void cleanCode(
  1. List<String> ignoreList, {
  2. bool debugPrint = false,
})

Implementation

void cleanCode(List<String> ignoreList, {bool debugPrint = false}) {
  final currentDirectory = Directory.current;
  final files = listFiles(currentDirectory);
  // regex to remove print statements
  final printStatementsRegex = RegExp(r'print\s*\(.+\);');
  // regex to remove debugPrint statements
  final debugPrintStatementsRegex = RegExp(r'debugPrint\s*\(.+\);');

  for (final file in files) {
    if (ignoreList.contains(path.basename(file.path))) {
      print("Ignoring ${path.basename(file.path)}");
      continue;
    }

    final content = file.readAsStringSync();
    var modifiedContent = content.replaceAll(printStatementsRegex, '');
    if (debugPrint) {
      modifiedContent =
          modifiedContent.replaceAll(debugPrintStatementsRegex, '');
    }

    if (content != modifiedContent) {
      file.writeAsStringSync(modifiedContent);
      print(
          'print/debugPrint Statements Removed in ${path.relative(file.path)}');
    }
  }

  print('Code Cleanup Completed!');

  // format the dart files in the lib directory using dart format
  Process.runSync('dart', ['format', 'lib'], runInShell: true);
  print('Formatted Dart Files in lib directory');
}