#!/bin/bash
# Cube Database Startup Script
echo "==================================="
echo " Cube Database - Starting... "
echo "==================================="
echo ""
# Check if Java is installed
if ! command -v java &> /dev/null; then
echo "❌ Java is not installed. Please install Java 21 or later."
exit 1
fi
# Check Java version
JAVA_VERSION=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | cut -d'.' -f1)
if [ "$JAVA_VERSION" -lt 21 ]; then
echo "❌ Java 21 or later is required. Found Java $JAVA_VERSION"
exit 1
fi
echo "✓ Java version: $(java -version 2>&1 | head -1)"
echo ""
# Build if JAR doesn't exist
if [ ! -f "target/cube-db-1.0.0.jar" ]; then
echo "📦 Building Cube database..."
mvn clean package -DskipTests
if [ $? -ne 0 ]; then
echo "❌ Build failed"
exit 1
fi
echo "✓ Build successful"
echo ""
fi
# Configuration
DATA_DIR="${CUBE_DATA_DIR:-/tmp/cube-data}"
SERVER_PORT="${CUBE_PORT:-8080}"
HEAP_SIZE="${CUBE_HEAP:-1G}"
echo "Configuration:"
echo " Data Directory: $DATA_DIR"
echo " Server Port: $SERVER_PORT"
echo " Heap Size: $HEAP_SIZE"
echo ""
# Create data directory
mkdir -p "$DATA_DIR"
# Start server
echo "🚀 Starting Cube database server..."
echo ""
java -Xmx"$HEAP_SIZE" \
-Dcube.datadir="$DATA_DIR" \
-Dserver.port="$SERVER_PORT" \
-jar target/cube-db-1.0.0.jar
# Exit code
if [ $? -eq 0 ]; then
echo ""
echo "✓ Cube database stopped gracefully"
else
echo ""
echo "❌ Cube database stopped with errors"
exit 1
fi