getTemplateDirectory method
dynamic
getTemplateDirectory()
Implementation
getTemplateDirectory() async {
try {
List<Directory> directories = [];
await for (FileSystemEntity entity in _templateRootDirectory.list(
recursive: false, followLinks: false)) {
if (entity is Directory) directories.add(entity);
}
print('\n');
ColoredLog.white('Select template index from below options');
for (int i = 0; i < directories.length; i++) {
ColoredLog.green(
directories[i].path.split('/').last,
name: i.toString(),
);
}
// If no template found in the template directory then print the below message
// and open the template directory
if (directories.isEmpty) {
ColoredLog.red(
'No template found in the template directory',
name: 'Error',
style: LogStyle.blinkSlow,
);
Docs.printTemplateCreationLogic();
await Future.delayed(Duration(seconds: 1));
Commands.openDirectory(templateDirectory.path);
exit(0);
}
ColoredLog.white('Enter Index :');
final input = stdin.readLineSync();
if ((input ?? '').isNotEmpty) {
final availableOptions = List.generate(directories.length, (i) => i);
if (availableOptions.contains(int.tryParse(input!))) {
final dir = directories[int.tryParse(input.toString()) ?? 0];
setTemplateDirectory = dir.path;
} else {
ColoredLog.red(
'invalid input',
name: 'Error',
style: LogStyle.blinkSlow,
);
exit(0);
}
} else {
ColoredLog.red(
'invalid input',
name: 'Error',
style: LogStyle.blinkSlow,
);
exit(0);
}
ColoredLog.green(
templateDirectory.path.split('/').last,
name: 'Selected Template',
);
ColoredLog.green(
templateDirectory.path,
name: 'Selected Template Path',
);
print('\n');
} catch (e) {
Docs.printTemplateCreationLogic();
}
}