#! /usr/bin/env bash set -euo pipefail RC_FILE="config/overleaf.rc" function __main__() { # Load vars from the rc file, prefixed with 'RC_ ' # shellcheck disable=SC1090 source <( grep -v '^#' "$RC_FILE" | # remove lines starting with '#' grep . | # remove blank lines grep -E '^[A-Z_]+=' | # filter down to variable assignments awk '{print "RC_" $0}' # prefix with 'RC_' ) if [[ "${RC_DEBUG:-null}" != "null" ]]; then echo ">>>>VARS>>>>" echo "$(set -o posix; set | grep ^RC_)" echo "<<<<<<<<<<<<" fi # Select which docker-compose files to load compose_file_flags=("-f ./config/docker-compose.base.yml") if [[ "$RC_REDIS_ENABLED" == "true" ]]; then compose_file_flags+=("-f ./config/docker-compose.redis.yml") fi if [[ "$RC_MONGO_ENABLED" == "true" ]]; then compose_file_flags+=("-f ./config/docker-compose.mongo.yml") fi # Build up the flags to pass to docker-compose project_name_flag="-p ${RC_PROJECT_NAME:-overleaf}" args="$*" compose_args=" $project_name_flag ${compose_file_flags[*]} $args" if [[ "${RC_DEBUG:-null}" != "null" ]]; then echo ">>>>COMPOSE-ARGS>>>>" echo "$compose_args" echo "<<<<<<<<<<<<<<<<<<<<" fi # Export vars for use in docker-compose files export RC_IMAGE export RC_SHARELATEX_DATA_PATH export RC_DOCKER_SOCKET_PATH export RC_MONGO_IMAGE export RC_MONGO_DATA_PATH export RC_REDIS_IMAGE export RC_REDIS_DATA_PATH # shellcheck disable=SC2086 exec docker-compose $compose_args } __main__ "$@"