run method

Future<void> run()

명령어 실행

Implementation

Future<void> run() async {
  try {
    logger.info('📄 Flutter 페이지를 추가합니다...\n');

    // 현재 작업 디렉토리 확인
    final currentDir = Directory.current;
    final pubspecFile = File(path.join(currentDir.path, 'pubspec.yaml'));

    if (!pubspecFile.existsSync()) {
      logger.err('❌ Flutter 프로젝트가 아닙니다. pubspec.yaml 파일을 찾을 수 없습니다.');
      exit(1);
    }

    // 1. 웹 플랫폼 활성화 여부 확인
    final isWebEnabled = _checkWebPlatform(currentDir);
    logger.detail('웹 플랫폼 활성화: ${isWebEnabled ? "예" : "아니오"}');

    // 2. 플랫폼 선택
    String platform = 'mobile';
    if (isWebEnabled) {
      platform = _selectPlatform();
      logger.detail('선택된 플랫폼: $platform');
    }

    // 3. 페이지 이름 입력
    final pageName = _getPageName();
    logger.detail('페이지 이름: $pageName');

    // 4. 컨트롤러 사용 여부 확인
    final useController = _askUseController();
    logger.detail('컨트롤러 사용: ${useController ? "예" : "아니오"}');

    // 5. 파일 생성
    await _createPageFiles(
      currentDir: currentDir,
      platform: platform,
      pageName: pageName,
      useController: useController,
    );

    logger.success('✅ 페이지가 성공적으로 추가되었습니다!');
    logger.info('\n📝 다음 단계:');
    logger.info('  - 라우팅 설정을 확인하세요: lib/$platform/routes/app_pages.dart');
    logger.info('  - 생성된 파일을 확인하세요: lib/$platform/pages/$pageName/');

    exit(0);
  } catch (e, stackTrace) {
    logger.err('❌ 오류 발생: $e');
    logger.detail('스택 트레이스: $stackTrace');
    exit(1);
  }
}