52 lines
1.8 KiB
Bash
52 lines
1.8 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# archive_inbox.sh — Inbox 파일 이동 + PD 지시 로그 경로 자동 정정 (단일 트랜잭션)
|
||
|
|
# 사용: bash scripts/archive_inbox.sh <src_path1> [<src_path2> ...]
|
||
|
|
# 각 src_path는 공유/소통/ 하위 현재 경로.
|
||
|
|
# 수행: (1) 파일명 추출 (2) git mv → 공유/소통/완료/ (3) PD 지시 로그 2종에서 경로 sed 치환
|
||
|
|
# (4) verify_log_paths.sh 재실행하여 부재 경로 0건 확인
|
||
|
|
# 목적: "Inbox 이동 후 PD 지시 로그 경로 동기화 누락" 재발 구조적 차단 (2026-04-17 실증)
|
||
|
|
set -euo pipefail
|
||
|
|
cd "$(dirname "$0")/.."
|
||
|
|
|
||
|
|
if [ "$#" -eq 0 ]; then
|
||
|
|
echo "usage: bash scripts/archive_inbox.sh <src_path1> [<src_path2> ...]" >&2
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
DST_DIR="공유/소통/완료"
|
||
|
|
mkdir -p "$DST_DIR"
|
||
|
|
|
||
|
|
LOG_DEV="공유/PD_지시_트래킹/개발팀_PD_지시_로그.md"
|
||
|
|
LOG_PLAN="공유/PD_지시_트래킹/기획팀_PD_지시_로그.md"
|
||
|
|
|
||
|
|
moved=0
|
||
|
|
for src in "$@"; do
|
||
|
|
if [ ! -f "$src" ]; then
|
||
|
|
echo "⚠️ 파일 없음, 건너뜀: $src" >&2
|
||
|
|
continue
|
||
|
|
fi
|
||
|
|
base=$(basename "$src")
|
||
|
|
dst="$DST_DIR/$base"
|
||
|
|
if [ -e "$dst" ]; then
|
||
|
|
echo "⚠️ 대상 이미 존재, 건너뜀: $dst" >&2
|
||
|
|
continue
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 이동 (git mv 우선, 실패 시 일반 mv)
|
||
|
|
git mv "$src" "$dst" 2>/dev/null || mv "$src" "$dst"
|
||
|
|
echo "✅ 이동: $src → $dst"
|
||
|
|
|
||
|
|
# PD 지시 로그 경로 정정 (정규식 특수문자 이스케이프는 sed 기본으로 충분)
|
||
|
|
esc_src=$(printf '%s' "$src" | sed 's|[\\&/]|\\&|g')
|
||
|
|
esc_dst=$(printf '%s' "$dst" | sed 's|[\\&/]|\\&|g')
|
||
|
|
sed -i "s|$esc_src|$esc_dst|g" "$LOG_DEV" 2>/dev/null || true
|
||
|
|
sed -i "s|$esc_src|$esc_dst|g" "$LOG_PLAN" 2>/dev/null || true
|
||
|
|
|
||
|
|
moved=$((moved+1))
|
||
|
|
done
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "📊 총 $moved 건 이동·경로 정정 완료"
|
||
|
|
echo "🔍 verify_log_paths.sh 재검증:"
|
||
|
|
bash scripts/verify_log_paths.sh 2>&1 | tail -5
|