jikan-rest/container-setup.sh

76 lines
2.4 KiB
Bash
Raw Normal View History

2023-07-23 12:33:51 +01:00
#!/bin/bash
JIKAN_API_VERSION=v4.0.0-rc.11
DOCKER_COMPOSE_PROJECT_NAME=jikan-api-$JIKAN_API_VERSION
display_help() {
echo "============================================================"
echo "Jikan API Container Setup CLI"
echo "============================================================"
echo "Syntax: ./container-setup.sh [command]"
echo "Jikan API Version: $JIKAN_API_VERSION"
echo "---commands---"
echo "help Print CLI help"
echo "build-image Build Image Locally"
echo "start Start Jikan API (mongodb, typesense, redis, jikan-api workers)"
echo "validate-prereqs Validate pre-reqs installed (docker, docker-compose)"
echo "execute-indexers Execute the indexers, which will scrape and index data from MAL. (Notice: This can take days)"
echo ""
}
validate_prereqs() {
docker -v >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo -e "'docker' is not installed or not runnable without sudo. \xE2\x9D\x8C"
else
echo -e "Docker is Installed. \xE2\x9C\x94"
fi
docker-compose -v >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo -e "'docker-compose' is not installed. \xE2\x9D\x8C"
else
echo -e "Docker compose is Installed. \xE2\x9C\x94"
fi
}
build_image() {
docker build --rm --compress -t jikanme/jikan-rest:$JIKAN_API_VERSION .
}
start() {
docker-compose -p $DOCKER_COMPOSE_PROJECT_NAME up -d
}
case "$1" in
"help")
display_help
;;
"validate-prereqs")
validate_prereqs
;;
"build-image")
build_image
;;
"start")
start
;;
"execute-indexers")
echo "Indexing anime..."
docker-compose -p $DOCKER_COMPOSE_PROJECT_NAME exec jikan_rest php /app/artisan indexer:anime
echo "Indexing manga..."
docker-compose -p $DOCKER_COMPOSE_PROJECT_NAME exec jikan_rest php /app/artisan indexer:manga
echo "Indexing characters and people..."
docker-compose -p $DOCKER_COMPOSE_PROJECT_NAME exec jikan_rest php /app/artisan indexer:common
echo "Indexing genres..."
docker-compose -p $DOCKER_COMPOSE_PROJECT_NAME exec jikan_rest php /app/artisan indexer:genres
echo "Indexing producers..."
docker-compose -p $DOCKER_COMPOSE_PROJECT_NAME exec jikan_rest php /app/artisan indexer:producers
echo "Indexing done!"
;;
*)
echo "No command specified, displaying help"
display_help
;;
esac