130 lines
3.7 KiB
Bash
Executable File
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 "$@" |