#!/usr/bin/env bash

echo -e "Quickwit (type $suffix):"
if find ./quickwit/data/indexes/${test}/*.split >/dev/null 2>&1; then
  echo -e "${COLORED}\tNo need to rebuild${NC}"
  exit 10
fi

docker-compose -f ../../docker-compose.yml --env-file ../../.env stop quickwit
docker-compose -f ../../docker-compose.yml --env-file ../../.env rm -f quickwit

suffix=$suffix docker-compose -f ../../docker-compose.yml --env-file ../../.env up -d quickwit

if timeout 10 docker logs -f quickwit_engine | grep -qm1 'REST server is ready'; then
  echo -e "\tQuickwit ready to accept connections"
else
  echo -e "\tQuickwit timeout failed"
  exit 1
fi

export HOST='http://localhost:7280'

echo -e "\tStart building quickwit_engine"

curl -s -XPOST "${HOST}/api/v1/indexes" \
  --header "content-type: application/yaml" \
  --data-binary @./quickwit/index-config.yaml >/dev/null

if [ ! -f ./quickwit/data_formatted/0.splitted.aaa ]; then
  i=0

  allCount=$(ls -la ./data/trips.csv.* | wc -l)

  echo -e "\t\tStart preparing chunks"

  for f in ./data/trips.csv.*; do

    echo -e "\t\t\tProcessing chunk ($i/$allCount)"

    echo -e "\t\t\t\t Morph CSV to JSONL $f -> ./quickwit/data_formatted/$i.jsonl"
    php ./quickwit/csv_jsonl.php "$f" "./quickwit/data_formatted/$i.jsonl"

    echo -e "\t\t\t\t Split chunk to 7k lines sub chunks"
    split -l 7000 -a 3 ./quickwit/data_formatted/$i.jsonl ./quickwit/data_formatted/$i.splitted.

    rm "./quickwit/data_formatted/$i.jsonl"
    echo -e "\t\t\t\tFinish Processing"

    ((i++))
  done
fi
echo -e "\t\tFinish converting to nd-json and creation chunks"