BurningTimesAi/scripts/archive_inbox.sh

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