#!/bin/bash
# Build Jellyfin Docker image on TrueNAS
# Usage: ./build_truenas.sh <truenas-host> [tag]
# Example: ./build_truenas.sh 192.168.79.249 10.11.5-custom

set -e

TRUENAS_HOST="${1}"
IMAGE_TAG="${2:-latest}"
BUILD_DIR="/tmp/jellyfin-build-$$"

if [ -z "$TRUENAS_HOST" ]; then
    echo "Usage: $0 <truenas-host> [tag]"
    echo "Example: $0 192.168.79.249 10.11.5-custom"
    exit 1
fi

echo "=================================================="
echo "Building Jellyfin on TrueNAS"
echo "=================================================="
echo "Host: $TRUENAS_HOST"
echo "Tag:  $IMAGE_TAG"
echo "=================================================="

# Create temp build directory on TrueNAS
echo "Creating build directory on TrueNAS..."
ssh root@${TRUENAS_HOST} "mkdir -p ${BUILD_DIR}"

# Sync repository to TrueNAS (excluding .git for speed)
echo "Syncing repository to TrueNAS..."
rsync -avz --progress \
    --exclude='.git' \
    --exclude='node_modules' \
    --exclude='bin' \
    --exclude='obj' \
    ./ root@${TRUENAS_HOST}:${BUILD_DIR}/

# Initialize and sync submodules on TrueNAS
echo "Initializing submodules on TrueNAS..."
ssh root@${TRUENAS_HOST} "cd ${BUILD_DIR} && git submodule update --init --recursive"

# Build Docker image on TrueNAS
echo "Building Docker image on TrueNAS..."
ssh root@${TRUENAS_HOST} "cd ${BUILD_DIR} && docker build -t jellyfin:${IMAGE_TAG} --file docker/Dockerfile ."

# Tag image
echo "Tagging image..."
ssh root@${TRUENAS_HOST} "docker tag jellyfin:${IMAGE_TAG} jellyfin:latest"

# Cleanup
echo "Cleaning up build directory..."
ssh root@${TRUENAS_HOST} "rm -rf ${BUILD_DIR}"

echo "=================================================="
echo "✓ Build complete!"
echo "=================================================="
echo "Image: jellyfin:${IMAGE_TAG}"
echo ""
echo "To run the container:"
echo "  ssh root@${TRUENAS_HOST}"
echo "  docker run -d jellyfin:${IMAGE_TAG}"
echo "=================================================="
