96 lines
3.0 KiB
Bash
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 ""
|