write method
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;
}