generateSingleMainBoilerplate method
Implementation
String generateSingleMainBoilerplate(FlavorConfig config) {
final configPath = config.appConfigPath;
final relativePath = p.relative(configPath, from: 'lib');
final flavors = config.flavors;
final cases =
flavors.map((f) => " case '\$f': return Flavor.\$f;").join('\n');
return """
import '$relativePath';
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
const flavorString = String.fromEnvironment('FLAVOR');
final flavor = _getFlavor(flavorString);
await dotenv.load(fileName: '.env.\$flavorString');
AppConfig.init(flavor);
runApp(const MyApp());
}
Flavor _getFlavor(String flavor) {
switch (flavor) {
$cases
default: return Flavor.${flavors.first};
}
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Scaffold(
body: Center(child: Text('Hello Flavor')),
),
);
}
}
""";
}