generateFcmService function

Future<void> generateFcmService()

Generates a dart file and installs the required package.

Implementation

Future<void> generateFcmService() async {
  final start = DateTime.now();
  ConsoleLog.title('Generating FCMService...');

  DartgenxConfig config = DartgenxConfig.load();

  final file = File(config.outputPath?.fcmService ?? 'lib/fcm_service.dart');

  file.createSync(recursive: true);

  file.writeAsStringSync(fcmTemplate);

  ConsoleLog.success('FCMService generated at ${config.outputPath?.fcmService ?? 'lib/fcm_service.dart'}');

  final packages = [
    'firebase_core',
    'firebase_messaging',
    'flutter_local_notifications'
  ];

  ConsoleLog.info('Installing required dependencies...');
  ConsoleLog.step('flutter pub add ${packages.join(" ")}');

  final result = await Process.run(
    'flutter',
    ['pub', 'add', ...packages],
    runInShell: true,
  );
  stdout.write(result.stdout);
  stderr.write(result.stderr);

  final duration = DateTime.now().difference(start).inMilliseconds;
  ConsoleLog.info('Completed in ${duration}ms');
  ConsoleLog.line();
}