#!/usr/bin/env bash # Agent提交前自动格式化脚本 # 用法:./scripts/format.sh [path1 path2 ...] # 不传参数则格式化所有后端代码 set -euo pipefail cd "$(dirname "$0")/.." echo "=== 代码格式化 ===" # 后端:black + isort(顺序:先isort后black,与pyproject.toml配置一致) if command -v black &>/dev/null && command -v isort &>/dev/null; then TARGETS="${@:-alembic apps packages tests scripts}" echo "后端格式化: $TARGETS" python3 -m isort $TARGETS python3 -m black $TARGETS echo "✅ 后端格式化完成" else echo "⚠️ 未安装black/isort,跳过后端格式化" fi # 前端:prettier + eslint --fix(如果有前端改动) if [ -d "apps/web" ] && command -v npx &>/dev/null; then if [ "$#" -eq 0 ] || echo "$@" | grep -q "apps/web"; then echo "前端格式化: apps/web" (cd apps/web && npx eslint src --ext .ts,.tsx --fix 2>/dev/null || true) (cd apps/web && npx prettier --write "src/**/*.{ts,tsx,css,json}" 2>/dev/null || true) echo "✅ 前端格式化完成" fi fi echo "=== 格式化全部完成 ==="