run method

  1. @override
Future<void> run(
  1. List<String> args, {
  2. required Logger logger,
})
override

The execution body of the command.

Implementation

@override
Future<void> run(List<String> args, {required Logger logger}) async {
  final finder = ProjectFinder();
  final projectRoot = finder.findProjectRoot();

  final spinner = Spinner('Cleaning deep linking configuration...');
  spinner.start();

  try {
    // 1. Clean Flutter generated files
    final generator = FlutterGenerator(projectRoot, logger);
    generator.clean();

    // 2. Restore backup files
    final backupManager = BackupManager(projectRoot);
    backupManager.restoreAll();

    // 3. Delete setup directory if it exists
    final setupDir = PathUtils.join(projectRoot, 'deeplink_setup');
    if (FileUtils.exists(setupDir)) {
      FileUtils.deleteDirectory(setupDir);
    }

    // 4. Delete config file
    final configManager = ConfigManager(projectRoot);
    configManager.delete();

    spinner.stop(success: true, finalMessage: 'Deep link configurations cleaned and files restored successfully.');
  } catch (e) {
    spinner.stop(success: false, finalMessage: 'Clean command failed.');
    logger.error('Failed to clean up deep link configuration: ${e.toString()}');
  }
}