#!/usr/bin/env bash # 按需拷贝原 CRM Java 到 docs/crm-migration/reference/java/{module}/ # 用法: ./docs/crm-migration/scripts/snapshot-java.sh quote service/impl/CrmQuoteServiceImpl.java # ./docs/crm-migration/scripts/snapshot-java.sh supplier-info controller/CrmSupplierInfoController.java set -euo pipefail ROOT="$(cd "$(dirname "$0")/../../.." && pwd)" SRC="${CRM_JAVA_SRC:-$ROOT/../shanxia/crm/backend/ruoyi-modules/ruoyi-crm/src/main}" MODULE="${1:?module name (e.g. quote, supplier-info)}" shift FILES=("$@") if [ ${#FILES[@]} -eq 0 ]; then echo "Usage: $0 ..." >&2 echo "Example: $0 quote service/impl/CrmQuoteServiceImpl.java" >&2 exit 1 fi DEST="$ROOT/docs/crm-migration/reference/java/$MODULE" mkdir -p "$DEST" for rel in "${FILES[@]}"; do # 支持 controller/xxx.java 或 java/org/dromara/crm/... 两种写法 if [[ "$rel" == java/* ]]; then src_file="$SRC/$rel" out="$DEST/${rel#java/org/dromara/crm/}" elif [[ "$rel" == resources/* ]]; then src_file="$SRC/../$rel" out="$DEST/$rel" else src_file="$SRC/java/org/dromara/crm/$rel" out="$DEST/$rel" fi mkdir -p "$(dirname "$DEST/$rel")" if [ ! -f "$src_file" ]; then echo "MISSING: $src_file" >&2 exit 1 fi cp "$src_file" "$out" echo "snapshotted: $rel -> reference/java/$MODULE/$rel" done echo "done: $(date -u +%Y-%m-%dT%H:%MZ)" >> "$DEST/.snapshot-log"