Files
shanxia2.0/docs/crm-migration/scripts/snapshot-java.sh
2026-06-01 08:21:21 +08:00

44 lines
1.4 KiB
Bash
Executable File

#!/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 <module> <relative-path>..." >&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"