couple_matters/daily_check/trigger_check.sh
StillHammer 92c2a9f022 Sync couple_matters: December crisis, separation agreement, daily check v2, xiaozhu search
Major updates:
- December 2025 crisis documentation and separation agreement
- Daily check system v2 with multiple card categories
- Xiaozhu rental search tools and results
- Exit plan documentation
- Message drafts for family communication
- Confluent moved to CONSTANT
- Updated profiles and promises

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 06:54:08 +08:00

59 lines
1.7 KiB
Bash

#!/bin/bash
# Daily Check Trigger Script
# Called by Windows Task Scheduler or Startup script
# Creates flag file for terminal auto-spawn
# Configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
FLAG_FILE="$HOME/.daily_check_pending"
STATE_FILE="$SCRIPT_DIR/.state.json"
LOG_FILE="$SCRIPT_DIR/daily_check.log"
# Ensure jq is available (for JSON parsing)
if ! command -v jq &> /dev/null; then
echo "$(date): ERROR - jq not installed. Install with: sudo apt install jq" >> "$LOG_FILE"
exit 1
fi
# Read last check date from state
LAST_CHECK=$(jq -r '.last_check_date' "$STATE_FILE" 2>/dev/null || echo "null")
TODAY=$(date +%Y-%m-%d)
CURRENT_HOUR=$(date +%H)
# Determine period of day
if [ $CURRENT_HOUR -ge 5 ] && [ $CURRENT_HOUR -lt 12 ]; then
PERIOD="morning"
elif [ $CURRENT_HOUR -ge 12 ] && [ $CURRENT_HOUR -lt 17 ]; then
PERIOD="afternoon"
else
PERIOD="evening"
fi
# Log trigger
echo "$(date): Trigger called ($PERIOD)" >> "$LOG_FILE"
# Check if already done today
if [ "$LAST_CHECK" == "$TODAY" ]; then
echo "$(date): Daily check already done today. Skipping." >> "$LOG_FILE"
exit 0
fi
# Create flag file with period information
echo "$PERIOD" > "$FLAG_FILE"
echo "$(date): Flag file created ($PERIOD)" >> "$LOG_FILE"
# If running in WSL terminal context, launch immediately
if [ -n "$WSL_DISTRO_NAME" ] && [ -n "$TERM" ]; then
echo "$(date): WSL terminal detected. Launching Claude Code immediately..." >> "$LOG_FILE"
sleep 1
cd "$SCRIPT_DIR"
claude "daily check"
rm -f "$FLAG_FILE"
echo "$(date): Claude Code launched, flag removed" >> "$LOG_FILE"
else
echo "$(date): No active terminal. Flag file will trigger on next terminal open." >> "$LOG_FILE"
fi
exit 0