swagger_generator_flutter/example/generate_api.sh

96 lines
3.0 KiB
Bash

#!/bin/bash
# Swagger API 代码生成脚本
# 用于 Learning Officer OA 项目
set -e # 遇到错误立即退出
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo -e "${CYAN}🚀 Swagger API 代码生成器${NC}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# 检查是否在项目根目录
if [ ! -f "pubspec.yaml" ]; then
echo -e "${YELLOW}❌ 错误: 请在项目根目录运行此脚本${NC}"
exit 1
fi
# 检查配置文件是否存在
if [ ! -f "generator_config.yaml" ]; then
echo -e "${YELLOW}❌ 错误: 找不到 generator_config.yaml 配置文件${NC}"
echo "请先创建配置文件"
exit 1
fi
rm -rf lib/src/api/*.dart
rm -rf lib/src/models/*.dart
# 步骤 1: 运行代码生成器
echo -e "${CYAN}📝 步骤 1/4: 正在运行代码生成器...${NC}"
dart run swagger_generator_flutter generate --all
if [ $? -ne 0 ]; then
echo -e "${YELLOW}❌ 代码生成失败!${NC}"
exit 1
fi
echo -e "${GREEN}✅ 代码生成成功${NC}"
echo ""
# 步骤 2: 运行 build_runner 生成 .g.dart 文件
echo -e "${CYAN}🔨 步骤 2/4: 正在运行 build_runner 生成 .g.dart 文件...${NC}"
flutter pub run build_runner build --delete-conflicting-outputs
if [ $? -ne 0 ]; then
echo -e "${YELLOW}⚠️ build_runner 执行失败,请检查错误信息${NC}"
else
echo -e "${GREEN}✅ build_runner 执行成功${NC}"
fi
echo ""
# 步骤 3: 修复和排序 imports
echo -e "${CYAN}🔧 步骤 3/4: 修复和排序 imports...${NC}"
dart fix --apply lib/src/api
FIX_API_EXIT_CODE=$?
dart fix --apply lib/src/api_models
FIX_MODELS_EXIT_CODE=$?
if [ $FIX_API_EXIT_CODE -ne 0 ] || [ $FIX_MODELS_EXIT_CODE -ne 0 ]; then
echo -e "${YELLOW}⚠️ dart fix 执行失败,请检查错误信息${NC}"
else
echo -e "${GREEN}✅ dart fix 执行成功${NC}"
fi
echo ""
# 步骤 4: 格式化代码
echo -e "${CYAN}📐 步骤 4/4: 格式化代码...${NC}"
dart format lib/src/api lib/src/api_models --set-exit-if-changed
if [ $? -ne 0 ]; then
echo -e "${YELLOW}⚠️ 代码格式化失败,请检查错误信息${NC}"
else
echo -e "${GREEN}✅ 代码格式化完成${NC}"
fi
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo -e "${GREEN}✨ 代码生成完成!${NC}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo -e "${CYAN}📋 生成的文件位置:${NC}"
echo " - API 接口: lib/src/api/"
echo " - API 模型: lib/src/api_models/"
echo ""
echo -e "${CYAN}💡 提示:${NC}"
echo " - 如果生成的文件有错误,请检查并修复后重新运行 build_runner"
echo " - 建议在提交代码前检查生成的代码是否符合项目规范"
echo ""