run method

Future<void> run()

명령어 실행

Implementation

Future<void> run() async {
  try {
    logger.info('🚀 Flutter 프로젝트 초기화를 시작합니다...\n');

    // 1. 프로젝트 이름 입력
    final projectName = _getProjectName();
    logger.detail('프로젝트 이름: $projectName');

    // 2. 패키지 ID 입력
    final packageId = _getPackageId();
    logger.detail('패키지 ID: $packageId');

    // 3. 플랫폼 선택 (멀티셀렉트)
    final platforms = _selectPlatforms();
    logger.detail('선택된 플랫폼: ${platforms.join(", ")}');

    // 4. Flutter 프로젝트 생성
    logger.info('\n📦 Flutter 프로젝트를 생성하는 중...');
    final projectPath = await FlutterRunner.createProject(
      projectName: projectName,
      packageId: packageId,
      platforms: platforms,
    );

    if (projectPath == null) {
      logger.err('❌ Flutter 프로젝트 생성에 실패했습니다.');
      exit(1);
    }

    logger.success('✅ Flutter 프로젝트가 생성되었습니다: $projectPath');

    // 5. 템플릿 기반으로 프로젝트 구조 생성
    logger.info('\n🔧 프로젝트 구조를 초기화하는 중...');

    await ProjectInitializer.initialize(
      targetPath: projectPath,
      projectName: projectName,
      packageId: packageId,
      platforms: platforms,
    );

    logger.success('✅ 프로젝트 초기화가 완료되었습니다!');
    logger.info('\n📝 다음 단계:');
    logger.info('  cd $projectName');
    logger.info('  flutter pub get');
    logger.info('  flutter run');

    // 명시적으로 종료
    exit(0);
  } catch (e, stackTrace) {
    logger.err('❌ 오류 발생: $e');
    logger.detail('스택 트레이스: $stackTrace');
    exit(1);
  }
}