You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.8 KiB

7 years ago
#!/bin/bash
set -e;
# disable verbose logging
ENV_DISPLAY_WARNINGS=false
# ensure the user environment is correctly set up
function env_check(){
if [ -z "${DATA_DIR}" ]; then
echo "You must set the DATA_DIR env var to a valid directory on your local machine."
echo
echo "Edit the '.env' file in this repository, update the DATA_DIR to a valid path and try again."
echo "Alternatively, you can set the variable in your environment using a command such as 'export DATA_DIR=/tmp'."
exit 1
elif [ ! -d "${DATA_DIR}" ]; then
printf "The directory specified by DATA_DIR does not exist: %s\n" ${DATA_DIR}
echo
echo "Edit the '.env' file in this repository, update the DATA_DIR to a valid path and try again."
echo "Alternatively, you can set the variable in your environment using a command such as 'export DATA_DIR=/tmp'."
exit 1
fi
}
# loads environment vars from a stream (such as a file)
# example: env_load_stream < .env
function env_load_stream(){
while IFS='=' read -r key value; do
([ -z $key ] || [ -z $value ]) && printf 'Invalid environment var "%s=%s"\n' $key $value && exit 1
if [ -z ${!key} ]; then
export "${key}=${value}"
elif $ENV_DISPLAY_WARNINGS; then
printf '[warn] skip setting environment var "%s=%s", already set "%s=%s"\n' $key $value $key ${!key}
fi
done
}
# ensure locale is correctly set?
# export LC_ALL=en_US.UTF-8
# load DATA_DIR and other vars from docker-compose .env file
# note: strips comments and empty lines
[ -f .env ] && env_load_stream < <(grep -v '^$\|^\s*$\#' .env)
# use the default compose file unless one was specified
# if [ -z "${COMPOSE_FILE}" ]; then
# if [ ! -f "docker-compose.yml" ]; then
# export COMPOSE_FILE="${BASEDIR}/docker-compose.yml"
# fi
# fi
# ensure the user env is correctly set up
env_check