#!/bin/bash
# ============================================================
# getsinkan.sh
# 設置先: /var/www/html/manager/sinkan/getsinkan.sh
# cron AM 2:00 から実行
# ============================================================

# スクリプト自身の設置ディレクトリを動的取得（絶対パス解決）
SINKAN_DIR="$(cd "$(dirname "$0")" && pwd)"
DB_FILE="${SINKAN_DIR}/db/sinkan_book.db"
BCK_DIR="${SINKAN_DIR}/db/bck"
LOG_DIR="${SINKAN_DIR}/log"
LOG_FILE="${LOG_DIR}/getsinkan.log"

# タイムゾーンをJSTに固定
export TZ="Asia/Tokyo"

# log/ ディレクトリがなければ作成
mkdir -p "$LOG_DIR"

log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

log "===== getsinkan 開始 ====="

# PHPスクリプト実行
log "getsinkan.pex 実行開始"
php "${SINKAN_DIR}/getsinkan.pex" >> "$LOG_FILE" 2>&1
RESULT=$?

if [ $RESULT -ne 0 ]; then
    log "WARNING: getsinkan.pex が異常終了 (exit code: $RESULT)"
else
    log "getsinkan.pex 正常終了"
fi

# ===========================
# DBバックアップ
# 日付の「日」の1桁目（0〜3）でローテーション（最大10世代）
# Windows版 %date:~9,1% と同じロジック
# ===========================
BCK_INDEX=$(date '+%d' | cut -c2)
BCK_FILE="${BCK_DIR}/sinkan_book-${BCK_INDEX}.db"

if [ -f "$DB_FILE" ]; then
    mkdir -p "$BCK_DIR"
    cp "$DB_FILE" "$BCK_FILE"
    if [ $? -eq 0 ]; then
        log "DBバックアップ完了: $BCK_FILE"
    else
        log "ERROR: DBバックアップ失敗"
    fi
else
    log "WARNING: DBファイルが見つかりません: $DB_FILE"
fi

log "===== getsinkan 終了 ====="
