nyaa/.docker/entrypoint.sh

51 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# set +x
pushd /nyaa
echo 'Waiting for MySQL to start up'
while ! echo HELO | nc mariadb 3306 &>/dev/null; do
sleep 1
done
echo 'DONE'
if ! [ -f /elasticsearch-sync/flag-db_create ]; then
python3 ./db_create.py
touch /elasticsearch-sync/flag-db_create
fi
if ! [ -f /elasticsearch-sync/flag-db_migrate ]; then
python3 ./db_migrate.py stamp head
touch /elasticsearch-sync/flag-db_migrate
fi
echo 'Waiting for ES to start up'
while ! echo HELO | nc elasticsearch 9200 &>/dev/null; do
sleep 1
done
echo 'DONE'
echo 'Waiting for ES to be ready'
while ! curl -s -XGET 'elasticsearch:9200/_cluster/health?pretty=true&wait_for_status=green' &>/dev/null; do
sleep 1
done
echo 'DONE'
if ! [ -f /elasticsearch-sync/flag-create_es ]; then
# @source create_es.sh
# create indices named "nyaa" and "sukebei", these are hardcoded
curl -v -XPUT 'elasticsearch:9200/nyaa?pretty' -H"Content-Type: application/yaml" --data-binary @es_mapping.yml
curl -v -XPUT 'elasticsearch:9200/sukebei?pretty' -H"Content-Type: application/yaml" --data-binary @es_mapping.yml
touch /elasticsearch-sync/flag-create_es
fi
if ! [ -f /elasticsearch-sync/flag-import_to_es ]; then
python3 ./import_to_es.py | tee /elasticsearch-sync/import.out
grep -A1 'Save the following' /elasticsearch-sync/import.out | tail -1 > /elasticsearch-sync/pos.json
touch /elasticsearch-sync/flag-import_to_es
fi
echo 'Starting the Flask app'
/usr/local/bin/uwsgi /nyaa/.docker/uwsgi.config.ini