58 lines
2.3 KiB
Bash
58 lines
2.3 KiB
Bash
#!/bin/bash
|
|
# SessionStart hook 확장: 자기 inbox 신규·미처리 파일 자동 알림
|
|
# Phase 2 (2026-04-15 PD님 승인) — 공유/소통/ 6축 통신 허브 연동
|
|
#
|
|
# 부서 판단 규칙 (cwd 기반):
|
|
# - /기획실/ 경로 포함 → 기획실
|
|
# - /개발실/ 경로 포함 → 개발실
|
|
# - 그 외 → PM (루트)
|
|
# 각 부서는 자기 수신 inbox 2개를 스캔하며, YAML `status: 완료` 가 아닌 파일만 보고한다.
|
|
|
|
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
|
|
[ -z "$REPO_ROOT" ] && exit 0
|
|
|
|
CWD=$(pwd -W 2>/dev/null || pwd)
|
|
|
|
if [[ "$CWD" == *"/기획실/"* ]] || [[ "$CWD" == *"/기획실" ]]; then
|
|
ROLE="기획실"
|
|
INBOXES=("$REPO_ROOT/공유/소통/PM→기획실" "$REPO_ROOT/공유/소통/개발실→기획실")
|
|
elif [[ "$CWD" == *"/개발실/"* ]] || [[ "$CWD" == *"/개발실" ]]; then
|
|
ROLE="개발실"
|
|
INBOXES=("$REPO_ROOT/공유/소통/PM→개발실" "$REPO_ROOT/공유/소통/기획실→개발실")
|
|
else
|
|
ROLE="PM"
|
|
INBOXES=("$REPO_ROOT/공유/소통/개발실→PM" "$REPO_ROOT/공유/소통/기획실→PM")
|
|
fi
|
|
|
|
TOTAL=0
|
|
LINES=""
|
|
|
|
for INBOX in "${INBOXES[@]}"; do
|
|
[ ! -d "$INBOX" ] && continue
|
|
CHANNEL=$(basename "$INBOX")
|
|
for f in "$INBOX"/*.md; do
|
|
[ -e "$f" ] || continue
|
|
STATUS=$(grep -m1 "^status:" "$f" 2>/dev/null | sed 's/status:[[:space:]]*//;s/[[:space:]]*$//')
|
|
[ "$STATUS" = "완료" ] && continue
|
|
SUBJECT=$(grep -m1 "^subject:" "$f" 2>/dev/null | sed 's/subject:[[:space:]]*//;s/[[:space:]]*$//')
|
|
FROM=$(grep -m1 "^from:" "$f" 2>/dev/null | sed 's/from:[[:space:]]*//;s/[[:space:]]*$//')
|
|
PRIORITY=$(grep -m1 "^priority:" "$f" 2>/dev/null | sed 's/priority:[[:space:]]*//;s/[[:space:]]*$//')
|
|
BASENAME=$(basename "$f")
|
|
[ -z "$SUBJECT" ] && SUBJECT="(제목 없음)"
|
|
[ -z "$FROM" ] && FROM="(발신자 없음)"
|
|
[ -z "$PRIORITY" ] && PRIORITY="normal"
|
|
[ -z "$STATUS" ] && STATUS="대기"
|
|
LINES+=" • [$CHANNEL] $FROM → $SUBJECT (prio:$PRIORITY, status:$STATUS) — $BASENAME
|
|
"
|
|
TOTAL=$((TOTAL + 1))
|
|
done
|
|
done
|
|
|
|
if [ $TOTAL -gt 0 ]; then
|
|
echo "📬 [Inbox:$ROLE] 미처리 통신 $TOTAL 건 (공유/소통/):"
|
|
printf "%b" "$LINES"
|
|
echo "→ 처리 후 status: 완료 갱신 + git mv 공유/소통/완료/ + commit·push"
|
|
else
|
|
echo "📭 [Inbox:$ROLE] 미처리 통신 없음"
|
|
fi
|