From 4c7c378eb541a3c6deefc35fede959e9f7ebee0d Mon Sep 17 00:00:00 2001 From: Leopere Date: Mon, 4 Jun 2018 01:45:14 -0400 Subject: [PATCH] * Major addition, configuration installation This commit is a rather large one adding a bunch of environment vars installing only the environment variables that have been set. Also copying the default template configs into the destination /app/ dir * Clarified where the bulk of the work gets done with a commented header There will be a significant amount of sanitation that will need added. --- www.spee.ch/docker-entrypoint.sh | 63 +++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/www.spee.ch/docker-entrypoint.sh b/www.spee.ch/docker-entrypoint.sh index 9d8e664..0545b02 100755 --- a/www.spee.ch/docker-entrypoint.sh +++ b/www.spee.ch/docker-entrypoint.sh @@ -13,9 +13,67 @@ else exit 1 fi +declare -a envvars=( + "$MYSQL_ENV_MYSQL_USER" + "$MYSQL_ENV_MYSQL_PASSWORD" + "$MYSQL_ENV_MYSQL_DATABASE" + "$MYSQL_ENV_MYSQL_ADDRESS" + "$GOOGLE_ANALYTICS_UID" + "$SITE_TITLE" + "$SITE_ADDRESS" + "$SITE_DESCRIPTION" +) + +function set_conf() { + case $1 in + $MYSQL_ENV_MYSQL_USER ) + echof info "Setting '$MYSQL_ENV_MYSQL_USER' $1 in /app/config/mysqlConfig.json" + sed -i 's/"username": "root"/"username": "'$MYSQL_ENV_MYSQL_USER'"/' /app/config/mysqlConfig.json + ;; + $MYSQL_ENV_MYSQL_PASSWORD ) + echof info "Setting '$MYSQL_ENV_MYSQL_PASSWORD' $1 in /app/config/mysqlConfig.json" + sed -i 's/"password": ""/"password": "'$MYSQL_ENV_MYSQL_PASSWORD'"/' /app/config/mysqlConfig.json + ;; + $MYSQL_ENV_MYSQL_DATABASE ) + echof info "Setting '$MYSQL_ENV_MYSQL_DATABASE' $1 in /app/config/mysqlConfig.json" + sed -i 's/"database": "lbry"/"database": "'$MYSQL_ENV_MYSQL_DATABASE'"/' /app/config/mysqlConfig.json + ;; + $MYSQL_SERVER_ADDRESS ) + echof warn "This variable is not currently available." + ;; + $SITE_ADDRESS ) + echof info "Setting '$SITE_ADDRESS' $1 in /app/config/siteConfig.json" + sed -i 's/"host": "https://www.example.com"/"host": "https://'$SITE_ADDRESS'"/' /app/config/siteConfig.json + ;; + $GOOGLE_ANALYTICS_UID ) + echof info "Setting '$GOOGLE_ANALYTICS_UID' $1 in /app/config/siteConfig.json" + sed -i 's/"googleId": null/"googleId": '$GOOGLE_ANALYTICS_UID'/' /app/config/siteConfig.json + ;; + $SITE_TITLE ) + echof info "Setting '$SITE_TITLE' $1 in /app/config/siteConfig.json" + sed -i 's/"title": "My Site"/"title": "'$SITE_TITLE'"/' /app/config/siteConfig.json + ;; + $SITE_DESCRIPTION ) + echof info "Setting '$SITE_DESCRIPTION' $1 in /app/config/siteConfig.json" + sed -i 's/"description": "A decentralized hosting platform built on LBRY"/"Description": "'$SITE_DESCRIPTION'"/' /app/config/siteConfig.json + ;; + esac +} + function configure_speech() { # install configuration changes here. - echof info "At some point there will be code here." + echof info "Installing configuration files into /app/config/." + mkdir -p /app/config/ + cp /usr/local/src/www.spee.ch/cli/defaults/mysqlConfig.json > /app/config/mysqlConfig.json + cp /usr/local/src/www.spee.ch/cli/defaults/siteConfig.json > /app/config/siteConfig.json + echof info "Installing any environment variables that have been set." + for i in "${envvars[@]}"; do + if [[ -z "$i" ]]; then + echof info "$i was not set, moving on." + else + set_conf $i + fi + done } function final_permset() { @@ -28,6 +86,9 @@ function final_permset() { echof info "Copied Spee.ch and set permissions" } +################################### +## Actual installation function. ## +################################### # if Spee.ch is not yet installed, copy it into web root. # This could be updated to be part of an upgrade mechanism. if [ "$(ls -A /app)" ]; then