#!/bin/bash

set -eu

start_tikv() {
    echo "Starting TiKV on ${1} ...."
    ${TIKV_BIN} --addr "$1" \
        --config "$5" \
        --pd "$3" \
        --status-addr "$2" \
        --log-level "info" \
        --log-file "$4/tikv.log" \
        --data-dir "$4/tikv" &
    i=0
    while ! curl -o /dev/null -sf "$2/status"; do
        i=$((i+1))
        if [ "$i" -gt 10 ]; then
            echo "Failed to start TiKV on ${1}"
            exit 1
        fi
        sleep 2
    done
}

start_pd() {
    echo "Starting PD..."
    ${PD_BIN} --client-urls "http://$PD_ADDR" \
    -L "info" \
    -config "$1" \
    -log-file "$2/pd.log" \
    -data-dir "$2/pd" &
    # wait until PD is online...
    while ! curl -o /dev/null -sf "http://$PD_ADDR/pd/api/v1/config"; do
        sleep 1
    done
}

print_log() {
    echo "PD log:"
    cat "$1/pd.log" || true
    echo "TiKV log:"
    cat "$2/tikv.log" || true
}
