#!/bin/bash # 胡汉三千年统一文档管理系统启动脚本 # 设置颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 项目根目录 PROJECT_ROOT="/home/ben/code/huhan3000" UNIFIED_DOCS="$PROJECT_ROOT/unified-docs" TOOLS_DIR="$UNIFIED_DOCS/tools" # 函数:打印彩色消息 print_info() { echo -e "${BLUE}[INFO]${NC} $1" } print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } print_error() { echo -e "${RED}[ERROR]${NC} $1" } # 函数:检查依赖 check_dependencies() { print_info "检查系统依赖..." # 检查Python if command -v python3 &> /dev/null; then print_success "Python3 已安装" else print_error "Python3 未安装,请先安装Python3" exit 1 fi # 检查必要的Python包 REQUIRED_PACKAGES=("hashlib" "json" "pathlib" "shutil" "datetime") for package in "${REQUIRED_PACKAGES[@]}"; do python3 -c "import $package" 2>/dev/null if [ $? -eq 0 ]; then print_success "Python包 $package 可用" else print_error "Python包 $package 不可用" exit 1 fi done } # 函数:显示系统状态 show_system_status() { print_info "=== 系统状态 ===" # 检查工具文件 TOOLS=("doc-indexer.py" "search-tool.py" "version-manager.py" "doc-migrator.py") for tool in "${TOOLS[@]}"; do if [ -f "$TOOLS_DIR/$tool" ]; then print_success "工具 $tool 存在" else print_error "工具 $tool 不存在" fi done # 检查配置文件 if [ -f "$UNIFIED_DOCS/config/settings.json" ]; then print_success "配置文件存在" else print_error "配置文件不存在" fi # 检查文档数量 DOC_COUNT=$(find "$UNIFIED_DOCS" -name "*.md" -o -name "*.txt" | wc -l) print_info "当前文档数量: $DOC_COUNT" # 检查版本数据库 if [ -f "$UNIFIED_DOCS/.versions/version-db.json" ]; then print_success "版本数据库存在" else print_warning "版本数据库不存在(首次运行)" fi } # 函数:更新文档索引 update_index() { print_info "更新文档索引..." cd "$UNIFIED_DOCS" python3 "$TOOLS_DIR/doc-indexer.py" if [ $? -eq 0 ]; then print_success "文档索引更新完成" else print_error "文档索引更新失败" fi } # 函数:搜索文档 search_documents() { if [ -z "$1" ]; then print_error "请提供搜索关键词" return 1 fi print_info "搜索文档: $1" cd "$UNIFIED_DOCS" python3 "$TOOLS_DIR/search-tool.py" "$1" } # 函数:迁移文档 migrate_documents() { print_info "开始文档迁移..." # 先进行模拟迁移 print_info "模拟迁移检查..." cd "$UNIFIED_DOCS" python3 "$TOOLS_DIR/doc-migrator.py" migrate --dry-run # 询问是否继续实际迁移 read -p "是否继续实际迁移?(y/N): " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then print_info "开始实际迁移..." python3 "$TOOLS_DIR/doc-migrator.py" migrate if [ $? -eq 0 ]; then print_success "文档迁移完成" # 迁移后更新索引 update_index else print_error "文档迁移失败" fi else print_info "迁移已取消" fi } # 函数:显示版本统计 show_version_stats() { print_info "显示版本统计..." cd "$UNIFIED_DOCS" python3 "$TOOLS_DIR/version-manager.py" stats } # 函数:显示帮助信息 show_help() { echo -e "${BLUE}胡汉三千年统一文档管理系统${NC}" echo "用法: $0 [命令]" echo "" echo "可用命令:" echo " status - 显示系统状态" echo " index - 更新文档索引" echo " search <关键词> - 搜索文档" echo " migrate - 迁移文档到统一系统" echo " versions - 显示版本统计" echo " help - 显示此帮助信息" echo "" echo "示例:" echo " $0 status" echo " $0 search 音韵" echo " $0 migrate" } # 主函数 main() { # 检查项目目录 if [ ! -d "$PROJECT_ROOT" ]; then print_error "项目根目录不存在: $PROJECT_ROOT" exit 1 fi if [ ! -d "$UNIFIED_DOCS" ]; then print_error "统一文档目录不存在: $UNIFIED_DOCS" exit 1 fi # 检查依赖 check_dependencies # 处理命令 case "$1" in "status") show_system_status ;; "index") update_index ;; "search") if [ -z "$2" ]; then print_error "请提供搜索关键词" show_help exit 1 fi search_documents "$2" ;; "migrate") migrate_documents ;; "versions") show_version_stats ;; "help"|"") show_help ;; *) print_error "未知命令: $1" show_help exit 1 ;; esac } # 执行主函数 main "$@"