swagger_generator_flutter/run_swagger.sh

130 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
# 简化版 Swagger CLI 运行脚本
# 提供便捷的命令行界面
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
# 脚本路径
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CLI_DART_FILE="$SCRIPT_DIR/bin/main.dart"
# 显示帮助
show_help() {
echo -e "${CYAN}🚀 Swagger CLI 工具${NC}"
echo ""
echo -e "${YELLOW}用法: $0 [命令] [选项]${NC}"
echo ""
echo -e "${GREEN}快速命令:${NC}"
echo -e " $0 all # 生成所有文件(推荐)"
echo -e " $0 models # 生成数据模型"
echo -e " $0 docs # 生成API文档"
echo -e " $0 api # 生成Retrofit API"
echo ""
echo -e "${GREEN}工具命令:${NC}"
echo -e " $0 clean # 清理生成的文件"
echo -e " $0 validate # 验证生成的代码"
echo -e " $0 format # 格式化代码"
echo ""
echo -e "${GREEN}直接使用:${NC}"
echo -e " dart run bin/main.dart generate --help"
echo ""
}
# 检查必要的工具
check_prerequisites() {
if ! command -v dart &> /dev/null; then
echo -e "${YELLOW}❌ Dart SDK 未安装或不在 PATH 中${NC}"
exit 1
fi
if [ ! -f "$CLI_DART_FILE" ]; then
echo -e "${YELLOW}❌ CLI 文件不存在: $CLI_DART_FILE${NC}"
exit 1
fi
}
# 执行生成并格式化
generate_and_format() {
local cmd="$1"
echo -e "${CYAN}🚀 执行: $cmd${NC}"
if eval "$cmd"; then
echo -e "${CYAN}🔧 修复和排序 imports...${NC}"
dart fix --apply
echo -e "${CYAN}🎨 格式化代码...${NC}"
dart format .
echo -e "${GREEN}✅ 生成完成!${NC}"
else
echo -e "${YELLOW}❌ 生成失败${NC}"
exit 1
fi
}
# 主函数
main() {
if [ $# -eq 0 ] || [ "$1" = "help" ] || [ "$1" = "--help" ]; then
show_help
exit 0
fi
# 检查必要工具(除了 clean 命令)
if [ "$1" != "clean" ]; then
check_prerequisites
fi
case "$1" in
all)
dart run "$CLI_DART_FILE" generate --models --api
dart fix --apply # 先修复和排序 imports
dart format . # 再格式化代码
;;
models)
dart run "$CLI_DART_FILE" generate --models
dart fix --apply # 先修复和排序 imports
dart format . # 再格式化代码
;;
docs)
dart run "$CLI_DART_FILE" generate --docs
dart fix --apply # 先修复和排序 imports
dart format . # 再格式化代码
;;
api)
dart run "$CLI_DART_FILE" generate --api
dart fix --apply # 先修复和排序 imports
dart format . # 再格式化代码
;;
clean)
echo -e "${CYAN}🧹 清理生成的文件...${NC}"
rm -rf generator/
echo -e "${GREEN}✅ 清理完成${NC}"
;;
validate)
echo -e "${CYAN}🔍 验证生成的代码...${NC}"
if [ -f "validate.sh" ]; then
./validate.sh
else
echo -e "${YELLOW}⚠️ 验证脚本不存在,请先运行: chmod +x validate.sh${NC}"
fi
;;
format)
echo -e "${CYAN}🎨 格式化代码...${NC}"
dart fix --apply # 先修复和排序 imports
dart format . # 再格式化代码
echo -e "${GREEN}✅ 格式化完成${NC}"
;;
*)
echo -e "${YELLOW}未知命令: $1${NC}"
show_help
exit 1
;;
esac
}
main "$@"