clean method

void clean()

Removes any of the dart build artifacts so you have a clean directory. We do this recursively so all subdirectories will also be purged.

Deletes: pubspec.lock ./packages .dart_tools

Any exes for scripts in the directory.

Implementation

void clean() {
  _lock.withLock(() {
    find(
      '.packages',
      types: [Find.file],
      workingDirectory: pathToProjectRoot,
    ).forEach(delete);
    find(
      '.dart_tool',
      types: [Find.directory],
      workingDirectory: pathToProjectRoot,
    ).forEach(deleteDir);
    find('pubspec.lock', workingDirectory: pathToProjectRoot).forEach(delete);

    find('*.dart', workingDirectory: pathToProjectRoot).forEach((scriptPath) {
      final script = Script.fromFile(scriptPath);
      if (exists(script.pathToExe)) {
        delete(script.pathToExe);
      }
    });
  }, waiting: 'Waiting for clean to complete...');
}