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>
59 lines
1.7 KiB
Bash
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
|