#!/bin/bash
set -e

# Configuration
REMOTE_USER="seedbox-ssh"
REMOTE_HOST="seedbox.notsosoft.fr"
REMOTE_PATH="/home/downloader"
LOCAL_BASE="/home/seedbox-sync"
LOCK_FILE="/tmp/seedbox-sync.lock"

# 1. Help message
if [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]]; then
    echo "Usage: $0"
    echo "Syncs media from $REMOTE_HOST to $LOCAL_BASE"
    echo "Manual trigger: sudo systemctl start orion-seedbox-sync.service"
    exit 0
fi

# 2. Change to a neutral directory
cd /

# 3. Find any available SSH private key
SSH_KEY=$(find "$LOCAL_BASE/.ssh" -maxdepth 1 -name "id_*" ! -name "*.pub" 2>/dev/null | head -n 1)

# 4. Check for SSH Key
if [ -z "$SSH_KEY" ] || [ ! -f "$SSH_KEY" ]; then
    echo "❌ ERROR: No SSH private key found in $LOCAL_BASE/.ssh/"
    exit 1
fi

# 5. Check for Lock File
if [ -f "$LOCK_FILE" ]; then
    echo "⚠️  Sync already in progress."
    exit 0
fi

trap 'rm -f "$LOCK_FILE"' EXIT
touch "$LOCK_FILE"

# 6. Sync Media Function
sync_files() {
    local pass_name=$1
    echo "🚀 Starting $pass_name sync from $REMOTE_HOST..."
    
    # Sync and ensure files are group-readable so the 'film' user can access them
    rsync -avz \
        --chmod=g+r \
        --exclude 'Downloads' \
        --exclude '.*' \
        --exclude 'scripts' \
        -e "ssh -i $SSH_KEY -o BatchMode=yes -o ConnectTimeout=10" \
        "$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH/" \
        "$LOCAL_BASE/"
}

# --- PRIMARY PASS ---
sync_files "primary"

# --- VERIFICATION PASS ---
sync_files "verification"

echo "✅ Sync completed successfully."
# NOTE: Systemd will now automatically trigger 'orion-media-sort.service'
exit 0
