Files
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

155 lines
3.9 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Agent打包脚本 - 用于快速打包某个Agent的所有文件
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# 显示使用说明
show_usage() {
echo "使用方法: ./package_agent.sh [Agent编号或名称]"
echo ""
echo "示例:"
echo " ./package_agent.sh 01"
echo " ./package_agent.sh Auth"
echo " ./package_agent.sh 01-Agent-Auth"
echo ""
echo "可用的Agent:"
ls -d [0-9][0-9]-Agent-* 2>/dev/null | sed 's/^/ /'
}
# 检查参数
if [ -z "$1" ]; then
show_usage
exit 1
fi
# 查找Agent目录
AGENT_DIR=""
SEARCH_TERM=$1
# 尝试不同的匹配方式
if [ -d "$SEARCH_TERM" ]; then
AGENT_DIR="$SEARCH_TERM"
elif [ -d "[0-9][0-9]-Agent-$SEARCH_TERM" ]; then
AGENT_DIR=$(ls -d [0-9][0-9]-Agent-$SEARCH_TERM 2>/dev/null | head -1)
elif [ -d "$SEARCH_TERM-Agent-"* ]; then
AGENT_DIR=$(ls -d $SEARCH_TERM-Agent-* 2>/dev/null | head -1)
else
# 模糊匹配
AGENT_DIR=$(ls -d *-Agent-*$SEARCH_TERM* 2>/dev/null | head -1)
fi
# 检查是否找到目录
if [ -z "$AGENT_DIR" ] || [ ! -d "$AGENT_DIR" ]; then
echo -e "${RED}错误: 找不到Agent目录 '$SEARCH_TERM'${NC}"
echo ""
show_usage
exit 1
fi
echo -e "${GREEN}找到Agent目录: $AGENT_DIR${NC}"
# 创建输出目录
OUTPUT_DIR="packaged"
mkdir -p "$OUTPUT_DIR"
# 生成输出文件名
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
OUTPUT_FILE="$OUTPUT_DIR/${AGENT_DIR}_${TIMESTAMP}.tar.gz"
# 创建临时目录
TEMP_DIR=$(mktemp -d)
PACKAGE_DIR="$TEMP_DIR/$AGENT_DIR"
mkdir -p "$PACKAGE_DIR"
# 复制Agent文件
echo "正在打包Agent文件..."
cp -r "$AGENT_DIR"/* "$PACKAGE_DIR/" 2>/dev/null
# 复制通用基础文件
echo "添加通用基础文件..."
mkdir -p "$PACKAGE_DIR/00-通用基础"
cp -r "00-通用基础"/* "$PACKAGE_DIR/00-通用基础/" 2>/dev/null
# 添加项目脚手架的关键文件引用
echo "添加项目基础代码引用..."
mkdir -p "$PACKAGE_DIR/_project_base"
cat > "$PACKAGE_DIR/_project_base/README.md" << EOF
# 项目基础代码引用
这些是项目脚手架中的关键文件Agent开发时需要参考
## 基础模型
- app/models/base.py - BaseModel, SoftDeleteMixin, AuditMixin
- app/schemas/base.py - BaseSchema, ResponseModel, PageModel
## 核心功能
- app/core/exceptions.py - 统一异常处理
- app/core/logger.py - 日志配置
- app/core/middleware.py - 中间件定义
- app/config/settings.py - 系统配置
## 开发规范
请查看 00-通用基础/base_prompt.md 了解详细的开发规范。
EOF
# 添加快速启动脚本
cat > "$PACKAGE_DIR/START_HERE.md" << EOF
# $AGENT_DIR 快速启动指南
## 1. 了解你的角色
请先阅读 \`prompt.md\` 了解你的职责和任务。
## 2. 理解项目上下文
查看 \`context.md\` 了解项目结构和依赖关系。
## 3. 查看API规范
如果有 \`api_contract.yaml\`请仔细阅读API接口定义。
## 4. 参考示例代码
查看 \`examples/\` 目录中的示例代码。
## 5. 遵循开发规范
务必遵循 \`00-通用基础/base_prompt.md\` 中的规范。
## 6. 使用检查清单
按照 \`checklist.md\` 进行开发和自检。
## 开始开发
\`\`\`
我是$AGENT_DIR准备开始开发工作。
我已经阅读了所有相关文档,理解了我的职责。
请确认项目根目录路径,我将开始创建代码。
\`\`\`
EOF
# 创建压缩包
cd "$TEMP_DIR"
tar -czf "$OUTPUT_FILE" "$AGENT_DIR"
cd - > /dev/null
# 清理临时文件
rm -rf "$TEMP_DIR"
# 显示结果
echo -e "${GREEN}✅ 打包完成!${NC}"
echo -e "输出文件: ${YELLOW}$OUTPUT_FILE${NC}"
echo -e "文件大小: $(du -h "$OUTPUT_FILE" | cut -f1)"
echo ""
echo "你可以:"
echo "1. 将此文件上传到Cursor云端"
echo "2. 解压后在本地Cursor中使用"
echo "3. 分享给其他开发者"
# 显示包含的文件
echo ""
echo "包含的文件:"
tar -tzf "$OUTPUT_FILE" | head -20
if [ $(tar -tzf "$OUTPUT_FILE" | wc -l) -gt 20 ]; then
echo "... 以及更多文件"
fi