finalizeAndWriteFiles method
Used at the very end of a command to cleanup and write out all the files which were generated or modified.
Implementation
void finalizeAndWriteFiles(AFCommandContext context) {
if(!context.isRootCommand) {
return;
}
// verify that none of the files still contain [!af_] tags
_validateNoAFTags(context, created.values);
_validateNoAFTags(context, modified.values);
final output = context.output;
var renamedCount = 0;
for(final original in renamed.keys) {
final revised = renamed[original];
if(revised == null) {
continue;
}
if(context.isExportTemplates) {
continue;
}
output.writeTwoColumns(col1: "rename ", col2: "${AFProjectPaths.relativePathFor(original)} -> ${AFProjectPaths.relativePathFor(revised)}");
renamedCount++;
final pathOrig = AFProjectPaths.fullPathFor(original);
final fileOrig = File(pathOrig);
final pathRevised = AFProjectPaths.fullPathFor(revised);
fileOrig.renameSync(pathRevised);
}
var createdCount = 0;
for(final generatedFile in created.values) {
if(generatedFile.writeIfModified(context)) {
createdCount++;
}
}
var modifiedCount = 0;
for(final modifiedFile in modified.values) {
if(modifiedFile.writeIfModified(context)) {
modifiedCount++;
}
}
var createdFolderCount = 0;
for(final folder in ensuredFolders) {
if(!AFProjectPaths.projectFileExists(folder)) {
createdFolderCount++;
output.writeTwoColumns(col1: "create ", col2: AFProjectPaths.relativePathFor(folder));
AFProjectPaths.createProjectFolder(folder);
}
}
output.writeTwoColumns(col1: "success ", col2: "renamed $renamedCount files, created $createdCount files, modified $modifiedCount files, created $createdFolderCount folders");
}