116 lines
2.6 KiB
Bash
116 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
echo "=========================================="
|
|
echo " 文件格式快速修复工具"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
# 要检查的文件列表
|
|
SCRIPT_FILES=(
|
|
"entrypoint.sh"
|
|
"setup.sh"
|
|
"register.sh"
|
|
"manage.sh"
|
|
)
|
|
|
|
FIXED_COUNT=0
|
|
TOTAL_FILES=0
|
|
|
|
echo "🔍 检查并修复以下文件:"
|
|
printf '%s\n' "${SCRIPT_FILES[@]}" | sed 's/^/ - /'
|
|
echo ""
|
|
echo "----------------------------------------"
|
|
echo ""
|
|
|
|
for file in "${SCRIPT_FILES[@]}"; do
|
|
TOTAL_FILES=$((TOTAL_FILES + 1))
|
|
|
|
# 检查文件是否存在
|
|
if [ ! -f "$file" ]; then
|
|
echo -e "${RED}✗ $file - 文件不存在,跳过${NC}"
|
|
continue
|
|
fi
|
|
|
|
NEEDS_FIX=false
|
|
|
|
# 检查换行符
|
|
HAS_CRLF=false
|
|
if file "$file" | grep -qi "CRLF\|with CR"; then
|
|
HAS_CRLF=true
|
|
NEEDS_FIX=true
|
|
fi
|
|
|
|
# 检查权限
|
|
NEEDS_CHMOD=false
|
|
if [ ! -x "$file" ]; then
|
|
NEEDS_CHMOD=true
|
|
NEEDS_FIX=true
|
|
fi
|
|
|
|
# 显示状态
|
|
echo -n "📄 $file ... "
|
|
|
|
if [ "$NEEDS_FIX" = false ]; then
|
|
echo -e "${GREEN}OK${NC}"
|
|
continue
|
|
fi
|
|
|
|
# 修复换行符
|
|
if [ "$HAS_CRLF" = true ]; then
|
|
sed -i 's/\r$//' "$file" 2>/dev/null || sed -i '' 's/\r$//' "$file" 2>/dev/null
|
|
echo -n -e "${YELLOW}[换行符已修复]${NC} "
|
|
fi
|
|
|
|
# 修复权限
|
|
if [ "$NEEDS_CHMOD" = true ]; then
|
|
chmod +x "$file"
|
|
echo -n -e "${YELLOW}[权限已修复]${NC} "
|
|
fi
|
|
|
|
echo -e "${GREEN}✓${NC}"
|
|
FIXED_COUNT=$((FIXED_COUNT + 1))
|
|
done
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "修复完成"
|
|
echo "=========================================="
|
|
echo "检查文件: $TOTAL_FILES"
|
|
echo "修复文件: $FIXED_COUNT"
|
|
echo ""
|
|
|
|
if [ $FIXED_COUNT -gt 0 ]; then
|
|
echo -e "${GREEN}✓ 所有问题已自动修复!${NC}"
|
|
echo ""
|
|
echo "建议执行以下命令重启容器:"
|
|
echo " docker-compose down"
|
|
echo " docker-compose build --no-cache"
|
|
echo " docker-compose up -d"
|
|
echo ""
|
|
|
|
# 询问是否立即重启
|
|
read -p "是否立即重启容器? (y/N): " -n 1 -r
|
|
echo ""
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "正在重启容器..."
|
|
docker-compose down
|
|
docker-compose build --no-cache
|
|
docker-compose up -d
|
|
sleep 3
|
|
echo ""
|
|
echo "容器状态:"
|
|
docker-compose ps
|
|
echo ""
|
|
echo "查看日志:"
|
|
docker logs gitea-runner --tail=30
|
|
fi
|
|
else
|
|
echo -e "${GREEN}✓ 所有文件格式正确,无需修复!${NC}"
|
|
fi
|