Files
k3s/004-scripts/project-tools/project-status.sh
2026-02-05 00:11:05 +08:00

89 lines
3.8 KiB
Bash
Executable File

#!/bin/bash
# 项目状态检查脚本
# 扫描仓库并显示项目状态、部署情况、文档完整性等
echo "╔════════════════════════════════════════════════════════════════╗"
echo "║ K3s Monorepo - 项目状态 ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
# 检查已部署的应用
echo "📦 已部署应用:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
if command -v kubectl &> /dev/null; then
kubectl get deployments -A 2>/dev/null | grep -E "(php-test|go01|wordpress|registry|n8n|gitea)" | \
awk '{printf " ✅ %-25s %-15s %s/%s replicas\n", $2, $1, $4, $3}' || echo " ⚠️ 无法获取部署信息"
else
echo " ⚠️ kubectl 未安装,无法检查部署状态"
fi
echo ""
echo "📱 应用项目:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# 检查每个应用目录
for dir in php-test go01 rails/*/ www; do
if [ -d "$dir" ]; then
name=$(basename "$dir")
readme=""
dockerfile=""
k8s=""
[ -f "$dir/README.md" ] && readme="📄" || readme=" "
[ -f "$dir/Dockerfile" ] && dockerfile="🐳" || dockerfile=" "
[ -d "$dir/k8s" ] || [ -f "$dir/k8s-deployment.yaml" ] && k8s="☸️ " || k8s=" "
printf " %-30s %s %s %s\n" "$name" "$readme" "$dockerfile" "$k8s"
fi
done
echo ""
echo "🏗️ 基础设施服务:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
for dir in k3s/*/; do
if [ -d "$dir" ]; then
name=$(basename "$dir")
yaml_count=$(find "$dir" -name "*.yaml" 2>/dev/null | wc -l)
printf " %-30s %2d YAML 文件\n" "$name" "$yaml_count"
fi
done
echo ""
echo "🛠️ 平台工具:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
for dir in traefik kuboard proxy; do
if [ -d "$dir" ]; then
yaml_count=$(find "$dir" -name "*.yaml" 2>/dev/null | wc -l)
printf " %-30s %2d YAML 文件\n" "$dir" "$yaml_count"
fi
done
echo ""
echo "📊 统计信息:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
total_yaml=$(find . -name "*.yaml" -type f 2>/dev/null | wc -l)
total_md=$(find . -name "*.md" -type f 2>/dev/null | wc -l)
total_sh=$(find . -name "*.sh" -type f 2>/dev/null | wc -l)
total_dockerfile=$(find . -name "Dockerfile" -type f 2>/dev/null | wc -l)
echo " YAML 配置文件: $total_yaml"
echo " Markdown 文档: $total_md"
echo " Shell 脚本: $total_sh"
echo " Dockerfile: $total_dockerfile"
echo ""
echo "💡 提示:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " 📄 = 有 README 文档"
echo " 🐳 = 有 Dockerfile"
echo " ☸️ = 有 Kubernetes 配置"
echo ""
echo " 查看详细信息: cat PROJECT-INDEX.md"
echo " 查看目录结构: ./scripts/project-tree.sh"
echo " 查看集群状态: make status"
echo ""