#!/bin/bash

if [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
  echo "SKIP_SOLR=y, skipping Solr..."
  sleep 365d
  exit 0
fi

MEM_TOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo)

if [[ "${1}" != "--bootstrap" ]]; then
  if [ ${MEM_TOTAL} -lt "2097152" ]; then
    echo "System memory less than 2 GB, skipping Solr..."
    sleep 365d
    exit 0
  fi
fi

set -e

# allow easier debugging with `docker run -e VERBOSE=yes`
if [[ "$VERBOSE" = "yes" ]]; then
  set -x
fi

# run the optional initdb
. /opt/docker-solr/scripts/run-initdb

# fixing volume permission

[[ -d /opt/solr/server/solr/dovecot-fts/data ]] && chown -R solr:solr /opt/solr/server/solr/dovecot-fts/data
if [[ "${1}" != "--bootstrap" ]]; then
  sed -i '/SOLR_HEAP=/c\SOLR_HEAP="'${SOLR_HEAP:-1024}'m"' /opt/solr/bin/solr.in.sh
else
  sed -i '/SOLR_HEAP=/c\SOLR_HEAP="256m"' /opt/solr/bin/solr.in.sh
fi

# keep a sentinel file so we don't try to create the core a second time
# for example when we restart a container.
# todo: check if a core exists without sentinel file

SENTINEL=/opt/docker-solr/fts_core_created

if [[ -f ${SENTINEL} ]]; then
  echo "skipping core creation"
else
  echo "Starting local Solr instance to setup configuration"
  su-exec solr start-local-solr

  echo "Creating core \"dovecot-fts\""
  su-exec solr /opt/solr/bin/solr create -c "dovecot-fts"

  # See https://github.com/docker-solr/docker-solr/issues/27
  echo "Checking core"
  while ! wget -O - 'http://localhost:8983/solr/admin/cores?action=STATUS' | grep -q instanceDir; do
    echo "Could not find any cores, waiting..."
    sleep 3
  done

  echo "Created core \"dovecot-fts\""
  touch ${SENTINEL}

  echo "Stopping local Solr"
  su-exec solr stop-local-solr
fi

rm -f /opt/solr/server/solr/dovecot-fts/conf/schema.xml
rm -f /opt/solr/server/solr/dovecot-fts/conf/managed-schema
rm -f /opt/solr/server/solr/dovecot-fts/conf/solrconfig.xml

cp /etc/solr/solr-config-7.7.0.xml /opt/solr/server/solr/dovecot-fts/conf/solrconfig.xml
cp /etc/solr/solr-schema-7.7.0.xml /opt/solr/server/solr/dovecot-fts/conf/schema.xml

chown -R solr:solr /opt/solr/server/solr/dovecot-fts/conf/{schema.xml,solrconfig.xml}

exec su-exec solr solr-foreground