diff --git a/reflector.go/compile/start.sh b/reflector.go/compile/start.sh old mode 100644 new mode 100755 index 26b06fa..2d0749e --- a/reflector.go/compile/start.sh +++ b/reflector.go/compile/start.sh @@ -1,5 +1,4 @@ #!/bin/bash -#!/bin/sh ## Launch service will tell prism-bin what mode to run in. LAUNCHMODE="${MODE:-$1}" @@ -7,41 +6,44 @@ LAUNCHMODE="${MODE:-$1}" ## This variable will be what can override default launch args. I may modify this as I learn more about prism-bin LAUNCHARGS="${CUSTOM_ARGS:-$2}" +## This is setup this way to handle any situations that might arise from the +## config being JSON and bash not being any good at JSON. # ## Strings to replace. -AWS_ID_STR='YOUR-AWS-ID' -AWS_SECRET_STR='' -BUCKET_REGION_STR='' -BUCKET_NAME_STR='' -DB_USER_STR='' -DB_PASSWORD='' -DB_HOSTIP='' -DB_PORT='' -DB_NAME='' +AWS_ID_STR="YOUR-AWS-ID" +AWS_SECRET_STR="YOUR-AWS-SECRET" +BUCKET_REGION_STR="YOUR-BUCKET-REGION" +BUCKET_NAME_STR="YOUR-BUCKET-NAME" +DB_USER_STR="USER" +DB_PASSWORD_STR="PASSWORD" +DB_HOSTIP_STR="localhost" +DB_PORT_STR="3306" +DB_NAME_STR="DBNAME" +## For the most part this section is disabled # ## Keys to re-insert -AWS_ID_KEY='' -AWS_SECRET_KEY='' -BUCKET_REGION_KEY='' -BUCKET_NAME_KEY='' -DB_USER_KEY='' -DB_PASSWORD='' -DB_HOSTIP='' -DB_PORT='' -DB_NAME='' +# AWS_ID_KEY='' +# AWS_SECRET_KEY='' +# BUCKET_REGION_KEY='' +# BUCKET_NAME_KEY='' +# DB_USER_KEY='' +# DB_PASSWORD_KEY='' +# DB_HOSTIP_KEY='' +# DB_PORT_KEY='' +# DB_NAME_KEY='' # Environment Variables/Defaults ## Json sucks in BASH/Shell so you need to add trailing commas intermittently. ## Just pay attention to this. Also at some point I'll need to make a fringe ## case for handling key/values that aren't included in the default config. -AWS_ID="${AWS_ID:-YOUR-AWS-ID}" -AWS_SECRET="${AWS_SECRET:-YOUR_AWS_SECRET}" -BUCKET_REGION="${BUCKET_REGION:-YOUR_BUCKET_REGION}" -BUCKET_NAME="${BUCKET_NAME:-YOUR_BUCKET_NAME}" -DB_USER="${DB_USER:-DB_USER}" -DB_PASSWORD="${DB_PASSWORD:-YOUR_DB_PASSWORD}" -DB_HOSTIP="${DB_HOSTIP:-YOUR_DB_HOSTIP}" -DB_PORT="${DB_PORT:-YOUR_DB_PORT}" -DB_NAME="${DB_NAME:-YOUR_DB_NAME}" +AWS_ID="${AWS_ID:-potato}" +AWS_SECRET="${AWS_SECRET:-potato}" +BUCKET_REGION="${BUCKET_REGION:-potato}" +BUCKET_NAME="${BUCKET_NAME:-potato}" +DB_USER="${DB_USER:-potato}" +DB_PASSWORD="${DB_PASSWORD:-potato}" +DB_HOSTIP="${DB_HOSTIP:-potato}" +DB_PORT="${DB_PORT:-potato}" +DB_NAME="${DB_NAME:-potato}" ## Environment Variables ## Missing Vars off the hop SLACK_HOOK_URL @@ -56,27 +58,49 @@ CONFIG_SETTINGS=( DB_PORT DB_NAME ) +CONFIG_SECRETS=( + AWS_ID + AWS_ID_STR + AWS_SECRET + AWS_SECRET_STR + BUCKET_NAME + BUCKET_NAME_STR + DB_USER + DB_USER_STR + DB_PASSWORD + DB_PASSWORD_STR + DB_HOSTIP + DB_HOSTIP_STR + DB_PORT + DB_PORT_STR + DB_NAME + DB_NAME_STR +) ## This function might be a bit overkill as all key/value pairs are unique in this config. -function config_modify() { - for i in "${!CONFIG_SETTINGS[@]}"; do - # echo ${CONFIG_SETTINGS[$i]}"_KEY" - ## Indirect references http://tldp.org/LDP/abs/html/ivr.html - eval FROM_STRING=\$"${CONFIG_SETTINGS[$i]}_STR" - eval VALUE_STRING=\$${CONFIG_SETTINGS[$i]} - eval KEY_STRING=\$"${CONFIG_SETTINGS[$i]}_KEY" - TO_STRING="$KEY_STRING $VALUE_STRING" - ## DEBUG - # echo DEBUG FROM_STRING: "$FROM_STRING" - # echo DEBUG VALUE_STRING: $VALUE_STRING - # echo DEBUG KEY_STRING: $KEY_STRING - # echo DEBUG TO_STRING: "$TO_STRING" - sed -i "s/$FROM_STRING/${TO_STRING:-$FROM_STRING}/g" /data/config.tmpl - done -} -config_modify +for i in "${!CONFIG_SETTINGS[@]}"; do + echo ${CONFIG_SETTINGS[$i]}"_KEY" + ## Indirect references http://tldp.org/LDP/abs/html/ivr.html + eval FROM_STRING=\$"${CONFIG_SETTINGS[$i]}_STR" + eval VALUE_STRING=\$${CONFIG_SETTINGS[$i]} + eval KEY_STRING=\$"${CONFIG_SETTINGS[$i]}_KEY" + TO_STRING="$KEY_STRING$VALUE_STRING" + ## DEBUG + # echo DEBUG FROM_STRING: "$FROM_STRING" + # echo DEBUG VALUE_STRING: $VALUE_STRING + # echo DEBUG KEY_STRING: $KEY_STRING + # echo DEBUG TO_STRING: "$TO_STRING" + sed -i '' "s/$FROM_STRING/$TO_STRING/g" ./config.tmpl +done -## Actual launch invoked here +## Sanitization section +# Awaiting someone smarter than me to suggest a method for this. +# https://unix.stackexchange.com/questions/474097/i-want-to-unset-a-list-of-bash-variables-that-have-their-variable-strings-stored +for i in "${CONFIG_SECRETS[@]}"; do + unset $i +done + +# Actual launch invoked here case $MODE in cluster ) prism-bin cluster ${LAUNCHARGS:-'-v --conf /data/config.tmpl'}