write method

WriteResult write(
  1. String path,
  2. String content
)

Writes content to path honoring force/dry-run, records the outcome, prints a per-file line, and returns what happened.

Implementation

WriteResult write(String path, String content) {
  final file = File(path);
  final exists = file.existsSync();

  if (exists && !force) {
    _skipped.add(path);
    print('  = $path (exists, use --force to overwrite)');
    return WriteResult.skipped;
  }

  if (dryRun) {
    final result =
        exists ? WriteResult.wouldOverwrite : WriteResult.wouldCreate;
    (exists ? _overwritten : _created).add(path);
    print('  ${exists ? '~' : '+'} $path (dry-run)');
    return result;
  }

  file.parent.createSync(recursive: true);
  file.writeAsStringSync(
      content.startsWith('\n') ? content.substring(1) : content);
  (exists ? _overwritten : _created).add(path);
  print('  ${exists ? '~' : '+'} $path');
  return exists ? WriteResult.overwritten : WriteResult.created;
}