sin601/claude-code
0
1#!/bin/bash2# 辅助命令脚本3 4CONFIG_DIR="${CONFIG_DIR:-/config}"5WORK_DIR="${WORK_DIR:-/workspace}"6 7# 状态查看命令8status() {9 echo "========================================"10 echo " Claude Code HF Space Status"11 echo "========================================"12 echo ""13 14 # 环境信息15 echo "📁 Directories:"16 echo " Work: ${WORK_DIR}"17 echo " Config: ${CONFIG_DIR}"18 echo ""19 20 # Git 状态21 echo "📦 Git Sync:"22 if [ -n "${GIT_REPO_URL}" ]; then23 echo " Repository: ${GIT_REPO_URL}"24 echo " Branch: ${GIT_BRANCH:-main}"25 echo " Interval: ${GIT_SYNC_INTERVAL:-300}s"26 27 cd "${WORK_DIR}"28 if [ -d ".git" ]; then29 LOCAL=$(git rev-parse HEAD 2>/dev/null || echo "N/A")30 REMOTE=$(git rev-parse "origin/${GIT_BRANCH:-main}" 2>/dev/null || echo "N/A")31 if [ "$LOCAL" = "$REMOTE" ]; then32 echo " Status: ✅ Synced"33 else34 echo " Status: ⚠️ Pending changes"35 fi36 else37 echo " Status: ❌ Not initialized"38 fi39 else40 echo " Status: ⚠️ Not configured"41 fi42 echo ""43 44 # API 状态45 echo "🔑 API Configuration:"46 if [ -n "${API_KEY}" ]; then47 KEY_PREVIEW="${API_KEY:0:10}..."48 KEY_COUNT=$(echo "${API_KEY}" | tr ',' '\n' | grep -c . || echo "1")49 echo " API Key: ✅ Configured (${KEY_PREVIEW})"50 echo " Keys: ${KEY_COUNT}"51 elif [ -n "${ANTHROPIC_API_KEY}" ]; then52 KEY_PREVIEW="${ANTHROPIC_API_KEY:0:10}..."53 KEY_COUNT=$(echo "${ANTHROPIC_API_KEY}" | tr ',' '\n' | grep -c . || echo "1")54 echo " API Key: ✅ Configured (${KEY_PREVIEW})"55 echo " Keys: ${KEY_COUNT}"56 else57 echo " API Key: ❌ Not configured"58 fi59 60 if [ -n "${API_BASE_URL}" ]; then61 echo " Base URL: ${API_BASE_URL}"62 fi63 echo ""64 65 # 代理状态66 echo "🔄 CLIProxyAPI:"67 if [ "${ENABLE_PROXY}" = "true" ]; then68 if pgrep -f "cliproxyapi" > /dev/null; then69 echo " Status: ✅ Running"70 echo " Port: ${PROXY_PORT:-8080}"71 else72 echo " Status: ❌ Not running"73 fi74 else75 echo " Status: ⚠️ Disabled"76 fi77 echo ""78 79 # 磁盘使用80 echo "💾 Disk Usage:"81 df -h "${WORK_DIR}" 2>/dev/null | tail -1 | awk '{print " Used: "$3" / "$2" ("$5")"}'82 echo ""83 84 # Claude Code 版本85 echo "🤖 Claude Code:"86 if command -v claude &> /dev/null; then87 claude --version 2>/dev/null || echo " Version: Installed"88 else89 echo " Status: ❌ Not found"90 fi91 echo ""92}93 94# 快速同步命令95git-sync() {96 case "${1:-}" in97 push)98 echo "Pushing changes to remote..."99 /app/scripts/git-sync.sh push100 ;;101 pull)102 echo "Pulling changes from remote..."103 /app/scripts/git-sync.sh pull104 ;;105 status)106 /app/scripts/git-sync.sh status107 ;;108 init)109 echo "Initializing Git sync..."110 /app/scripts/git-sync.sh init111 ;;112 *)113 echo "Usage: git-sync {push|pull|status|init}"114 echo ""115 echo "Commands:"116 echo " push - Push local changes to remote"117 echo " pull - Pull changes from remote"118 echo " status - Show sync status"119 echo " init - Initialize Git repository"120 ;;121 esac122}123 124# 配置编辑命令125config-edit() {126 if [ -z "${EDITOR}" ]; then127 EDITOR="nano"128 fi129 ${EDITOR} "${CONFIG_DIR}/config.env"130 echo "Configuration saved. Restart services to apply changes."131}132 133# 导出备份134export-backup() {135 BACKUP_NAME="workspace-backup-$(date +%Y%m%d-%H%M%S).tar.gz"136 echo "Creating backup: ${BACKUP_NAME}"137 138 cd "${WORK_DIR}"139 tar -czvf "/tmp/${BACKUP_NAME}" \140 --exclude='.git' \141 --exclude='node_modules' \142 --exclude='__pycache__' \143 --exclude='*.pyc' \144 --exclude='.cache' \145 .146 147 echo "Backup created: /tmp/${BACKUP_NAME}"148 echo "Size: $(du -h /tmp/${BACKUP_NAME} | cut -f1)"149}150 151# 帮助信息152help() {153 echo ""154 echo " ╔════════════════════════════════════════════════════════════╗"155 echo " ║ Claude Code HF Space - Available Commands ║"156 echo " ╠════════════════════════════════════════════════════════════╣"157 echo " ║ claude Start Claude Code ║"158 echo " ║ status Show system status ║"159 echo " ║ config-edit Edit configuration file ║"160 echo " ║ git-sync Git sync operations ║"161 echo " ║ export-backup Create a backup archive ║"162 echo " ║ help Show this help message ║"163 echo " ╚════════════════════════════════════════════════════════════╝"164 echo ""165}166 167# 如果直接运行此脚本,显示帮助168if [ "${BASH_SOURCE[0]}" = "${0}" ]; then169 case "${1:-}" in170 status) status ;;171 config-edit) config-edit ;;172 git-sync) git-sync "$2" ;;173 export-backup) export-backup ;;174 help|*) help ;;175 esac176fi177 