generateStructure function

void generateStructure(
  1. Directory srcDir,
  2. Template template,
  3. Map<String, String> snippets
)

Implementation

void generateStructure(
  Directory srcDir,
  Template template,
  Map<String, String> snippets,
) {
  // folders
  for (final folder in template.folders) {
    Directory(p.join(srcDir.path, folder)).createSync(recursive: true);
  }

  // files
  for (final file in template.files) {
    final content = snippets[file.snippet];
    if (content == null) {
      throw Exception('Snippet not found: ${file.snippet}');
    }

    final f = File(p.join(srcDir.path, file.path));
    if (!f.existsSync()) {
      f.createSync(recursive: true);
      f.writeAsStringSync(content);
    }
  }
}