generateThemeClass function
Future<void>
generateThemeClass(
)
Implementation
Future<void> generateThemeClass() async {
DartgenxConfig config = DartgenxConfig.load();
String customPath;
if (config.outputPath?.theme == null) {
customPath = Input(
prompt: 'Enter the full path where you want to create the theme folder:',
defaultValue: Directory.current.path,
validator: (v) {
final trimmed = v.trim();
final dir = Directory(trimmed);
if (trimmed.isNotEmpty && !dir.existsSync()) {
throw ValidationError('Directory does not exist. Please enter a valid path');
}
return true;
},
).interact();
} else {
customPath = config.outputPath?.theme ?? "";
}
final basePath = customPath.trim().isEmpty ? path.join(Directory.current.path, "theme") : customPath.trim();
// final String folderName = "theme";
// final fullPath = path.join(basePath, folderName);
final directory = Directory(basePath);
if (directory.existsSync()) {
ConsoleLog.error("The theme folder already exist!");
exit(1);
}
directory.createSync(recursive: true);
final appColorDir = Directory(path.join(directory.path, "app_colors"));
appColorDir.createSync(recursive: true);
final String appThemeFileName = "app_theme.dart";
final String appTextStyleFileName = "app_text_styles.dart";
final String appColorsFileName = "app_colors.dart";
final String appLightColorsFileName = "app_light_colors.dart";
final String appDarkColorsFileName = "app_dark_colors.dart";
final appThemeFile = File(path.join(directory.path, appThemeFileName));
final appTextStyleFile = File(path.join(directory.path, appTextStyleFileName));
final appColorsFile = File(path.join(appColorDir.path, appColorsFileName));
final appLightColorsFile = File(path.join(appColorDir.path, appLightColorsFileName));
final appDarkColorsFile = File(path.join(appColorDir.path, appDarkColorsFileName));
appThemeFile.writeAsStringSync(appThemeTemplate());
appTextStyleFile.writeAsStringSync(appTextStyleTemplate());
appColorsFile.writeAsStringSync(appColorTemplate());
appLightColorsFile.writeAsStringSync(appLightColorTemplate());
appDarkColorsFile.writeAsStringSync(appDarkColorTemplate());
ConsoleLog.success("Theme class created successfully in \"$basePath\"!");
}