From a1f7b2e6f06fc120642d9e5b23b96ce71be8e67c Mon Sep 17 00:00:00 2001 From: Ian Blenke Date: Sun, 21 Sep 2014 20:27:01 -0400 Subject: [PATCH] Refactoring the sourcing of .env.example as the driver for the generated .env --- docker/Dockerfile | 1 + docker/scripts/init | 65 +++++++++++---------------------------------- 2 files changed, 16 insertions(+), 50 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d852a11c..bee6eb0e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,6 +12,7 @@ RUN apt-get update && \ libmysqlclient-dev libpq-dev zlib1g-dev libyaml-dev libssl-dev \ libgdbm-dev libreadline-dev libncurses5-dev libffi-dev \ libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev \ + graphviz libgraphviz-dev \ ruby2.1 ruby2.1-dev supervisor && \ gem install --no-ri --no-rdoc bundler && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/scripts/init b/docker/scripts/init index 4b61ae14..f779c688 100755 --- a/docker/scripts/init +++ b/docker/scripts/init @@ -10,62 +10,27 @@ source /app/.env.example # requires that the mysql or postgresql containers have exposed # port 3306 and 5432 respectively. if [ -n "${MYSQL_PORT_3306_TCP_ADDR}" ]; then - DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2} - DATABASE_HOST=${DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}} - DATABASE_PORT=${DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT}} + HUGINN_DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-mysql2} + HUGINN_DATABASE_HOST=${HUGINN_DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}} + HUGINN_DATABASE_PORT=${HUGINN_DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT}} elif [ -n "${POSTGRESQL_PORT_5432_TCP_ADDR}" ]; then - DATABASE_ADAPTER=${DATABASE_ADAPTER:-postgres} - DATABASE_HOST=${DATABASE_HOST:-${POSTGRESQL_PORT_5432_TCP_ADDR}} - DATABASE_PORT=${DATABASE_PORT:-${POSTGRESQL_PORT_5432_TCP_PORT}} + HUGINN_DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-postgres} + HUGINN_DATABASE_HOST=${HUGINN_DATABASE_HOST:-${POSTGRESQL_PORT_5432_TCP_ADDR}} + HUGINN_DATABASE_PORT=${HUGINN_DATABASE_PORT:-${POSTGRESQL_PORT_5432_TCP_PORT}} fi -cat < /app/.env -APP_SECRET_TOKEN=${HUGINN_APP_SECRET_TOKEN:-$APP_SECRET_TOKEN} -DOMAIN=${HUGINN_DOMAIN:-$DOMAIN} -${ASSET_HOST:+ASSET_HOST=${HUGINN_ASSET_HOST:-$ASSET_HOST}} -DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-$DATABASE_ADAPTER} -DATABASE_ENCODING=${HUGINN_DATABASE_ENCODING:-$DATABASE_ENCODING} -DATABASE_RECONNECT=${HUGINN_DATABASE_RECONNECT:-$DATABASE_RECONNECT} -DATABASE_NAME=${HUGINN_DATABASE_NAME:-$DATABASE_NAME} -DATABASE_POOL=${HUGINN_DATABASE_POOL:-$DATABASE_POOL} -DATABASE_USERNAME=${HUGINN_DATABASE_USERNAME:-$DATABASE_USERNAME} -DATABASE_PASSWORD="${HUGINN_DATABASE_PASSWORD:-$DATABASE_PASSWORD}" -DATABASE_HOST=${HUGINN_DATABASE_HOST:-${DATABASE_HOST:-localhost}} -DATABASE_PORT=${HUGINN_DATABASE_PORT:-${DATABASE_PORT:-3306}} -${HUGINN_DATABASE_SOCKET:+DATABASE_SOCKET=${HUGINN_DATABASE_SOCKET}} -${HUGINN_RAILS_ENV:+RAILS_ENV=${HUGINN_RAILS_ENV}} -FORCE_SSL=${HUGINN_FORCE_SSL:-$FORCE_SSL} -INVITATION_CODE=${HUGINN_INVITATION_CODE:-$INVITATION_CODE} -SMTP_DOMAIN=${HUGINN_SMTP_DOMAIM:-$SMTP_DOMAIN} -SMTP_USER_NAME=${HUGINN_SMTP_USER_NAME:-$SMTP_USER_NAME} -SMTP_PASSWORD=${HUGINN_SMTP_PASSWORD:-$SMTP_PASSWORD} -SMTP_SERVER=${HUGINN_SMTP_SERVER:-$SMTP_SERVER} -SMTP_PORT=${HUGINN_SMTP_PORT:-$SMTP_PORT} -SMTP_AUTHENTICATION=${HUGINN_SMTP_AUTHENTICATION:-$SMTP_AUTHENTICATION} -SMTP_ENABLE_STARTTLS_AUTO=${HUGINN_SMTP_ENABLE_STARTTLS_AUTO:-$SMTP_ENABLE_STARTTLS_AUTO} -EMAIL_FROM_ADDRESS=${HUGINN_EMAIL_FROM_ADDRESS:-$EMAIL_FROM_ADDRESS} -AGENT_LOG_LENGTH=${HUGINN_AGENT_LOG_LENGTH:-$AGENT_LOG_LENGTH} -TWITTER_OAUTH_KEY=${HUGINN_TWITTER_OAUTH_KEY:-$TWITTER_OAUTH_KEY} -TWITTER_OAUTH_SECRET=${HUGINN_TWITTER_OAUTH_SECRET:-$TWITTER_OAUTH_SECRET} -THIRTY_SEVEN_SIGNALS_OAUTH_KEY=${HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_KEY:-$THIRTY_SEVEN_SIGNALS_OAUTH_KEY} -THIRTY_SEVEN_SIGNALS_OAUTH_SECRET=${HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_SECRET:-$THIRTY_SEVEN_SIGNALS_OAUTH_SECRET} -GITHUB_OAUTH_KEY=${HUGINN_GITHUB_OAUTH_KEY:-$GITHUB_OAUTH_KEY} -GITHUB_OAUTH_SECRET=${HUGINN_GITHUB_OAUTH_SECRET:-$GITHUB_OAUTH_SECRET} -AWS_ACCESS_KEY_ID="${HUGINN_AWS_ACCESS_KEY_ID:-$AWS_ACCESS_KEY_ID}" -AWS_ACCESS_KEY="${HUGINN_AWS_ACCESS_KEY:-$AWS_ACCESS_KEY}" -AWS_SANDBOX=${HUGINN_AWS_SANDBOX:-$AWS_SANDBOX} -FARADAY_HTTP_BACKEND=${HUGINN_FARADAY_HTTP_BACKEND:-$FARADAY_HTTP_BACKEND} -DEFAULT_HTTP_USER_AGENT=${HUGINN_DEFAULT_HTTP_USER_AGENT:-$DEFAULT_HTTP_USER_AGENT} -ALLOW_JSONPATH_EVAL=${HUGINN_ALLOW_JSONPATH_EVAL:-$ALLOW_JSONPATH_EVAL} -ENABLE_INSECURE_AGENTS=${HUGINN_ENABLE_INSECURE_AGENTS:-$HUGINN_ENABLE_INSECURE_AGENTS} -ENABLE_SECOND_PRECISION_SCHEDULE=${HUGGIN_ENABLE_SECOND_PRECISION_SCHEDULE:-$ENABLE_SECOND_PRECISION_SCHEDULE} -${HUGINN_USE_GRAPHVIZ_DOT:+USE_GRAPHVIZ_DOT=${HUGINN_USE_GRAPHVIZ_DOT}} -TIMEZONE="${HUGINN_TIMEZONE:-$TIMEZONE}" -FAILED_JOBS_TO_KEEP=${HUGGIN_FAILED_JOBS_TO_KEEP:-$FAILED_JOBS_TO_KEEP} -EOF +grep = ../.env.example | sed -e 's/^#//' | grep -v -e '^#' | cut -d= -f1 | \ + while read var ; do + echo "$var=\${HUGINN_$var:-\$$var}" + done > /app/.env + chmod ugo+r /app/.env source /app/.env +DATABASE_HOST=${HUGINN_DATABASE_HOST:-${DATABASE_HOST:-localhost}} +DATABASE_ENCODING=${HUGINN_DATABASE_ENCODING:-${DATABASE_ENCODING}} +USE_GRAPHVIZ_DOT=${HUGINN_USE_GRAPHVIZ_DOT:-${USE_GRAPHVIZ_DOT}} + # use default port number if it is still not set case "${DATABASE_ADAPTER}" in mysql2) DATABASE_PORT=${DATABASE_PORT:-3306} ;;