availableTemplates static method

Future<List<String>> availableTemplates()

Returns template directories that contain a non-empty manifest.

Implementation

static Future<List<String>> availableTemplates() async {
  final root = const PackageLocator().packageRoot();
  final directory = Directory('${root.path}/templates');
  if (!directory.existsSync()) return const [];

  final names = <String>[];
  await for (final entity in directory.list()) {
    if (entity is! Directory) continue;
    final manifest = File('${entity.path}/template.yaml');
    if (!manifest.existsSync()) continue;
    final content = await manifest.readAsString();
    if (content.trim().isNotEmpty) {
      names.add(entity.path.split('/').last);
    }
  }
  names.sort();
  return names;
}