#!/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 "$@"