#!/bin/bash

set -e

if [ -z "$1" ]; then
  echo "Usage: $0 <commit-hash>"
  exit 1
fi

COMMIT="$1"

BASE_DIR="/home/jeb/mariadb_builds"
SRC_DIR="$BASE_DIR/server"
BUILD_DIR="$BASE_DIR/build-$COMMIT"
INSTALL_DIR="$BASE_DIR/install-$COMMIT"
TARBALL="$BASE_DIR/mariadb-$COMMIT.tar.gz"

echo "=== Checking out commit $COMMIT ==="
cd "$SRC_DIR"
git fetch --all --quiet
git checkout "$COMMIT"

echo "=== Cleaning old build directory ==="
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"

echo "=== Running CMake ==="
cmake "$SRC_DIR" \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
  -DWITH_SSL=system \
  -DWITH_ZLIB=system \
  -DWITH_PCRE=system \
  -DWITH_UNIT_TESTS=OFF

echo "=== Building ==="
make -j"$(nproc)"

echo "=== Installing ==="
make install

echo "=== Packaging ==="
cd "$BASE_DIR"
tar -czf "$TARBALL" "install-$COMMIT"

echo "=== DONE ==="
echo "Install directory: $INSTALL_DIR"
echo "Tarball:          $TARBALL"
