diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-06-24 15:35:02 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-06-24 15:35:02 +0000 |
| commit | b9d8dc63fd3dc1b959ed842e5333d1d680807e8d (patch) | |
| tree | 5dea9d15f473df291bdcc0e13e5fe1e9d40da161 /tools | |
| parent | 6766632b9ca2aa081464aebec4855c1a6c8d4163 (diff) | |
| parent | 01e90ec2e575e4545037cb9c2953fd5347bfb875 (diff) | |
| download | kolla-b9d8dc63fd3dc1b959ed842e5333d1d680807e8d.tar.gz kolla-b9d8dc63fd3dc1b959ed842e5333d1d680807e8d.zip | |
Merge "Auto generate minimal environment variables doc"
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/min-env.sh | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tools/min-env.sh b/tools/min-env.sh new file mode 100755 index 000000000..403a43c34 --- /dev/null +++ b/tools/min-env.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +# +# This script generates the minimal environment variable doc + +# Move to top level directory +REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')") +cd "$(dirname "$REAL_PATH")/.." + +DOC=docs/minimal-environment-vars.md +DOCKERDIR="docker" +# BASE and TYPE can be hard coded to centos and rdo since the required vars will always be the same +BASE="centos" +TYPE="rdo" + +function write_header { + local header=$1 + header=${header^} + header=$(echo ${header} | sed -e 's/-app//') + echo -e "\n# $header\n" >> "$DOC" +} + +function write_env_var { + local env_var=$1 + if [ -z "$env_var" ]; then + echo "" >> "$DOC" + else + env_var=${env_var%=*} + echo " $env_var" >> "$DOC" + fi +} + +function find_vars { + local img_location=$1 + local empty=true + scripts=$(find ${img_location} -name *.sh | sort -t / -k 4) + + for script in $scripts; do + local vars=$(awk '/^\s*check_required_vars/,/([^\\]\s*$)/' $script) + vars=$(echo "$vars" | sed 's/check_required_vars//' | sed 's/\\//g') + + if [ ! -z "$vars" ]; then + empty=false + for v in $vars; do + write_env_var $v + done + fi + done + + if $empty; then + echo " None" >> "$DOC" + fi +} + +cat > $DOC <<EOF +# Environment Variables + +In order for each service to function, there is a minimum set of required variables that need to be plugged into the environment. Below is the list of variables that is needed for each service to run in a minimal setting. +EOF + +declare -a startsh +startsh=$(find "${DOCKERDIR}/${BASE}/${TYPE}/" -name Dockerfile | sort -t / -k 4 | grep -v data) + +for start_script in $startsh; do + if [ ! "$(dirname $start_script | xargs basename)" == "base" ]; then + write_header $(dirname $start_script | xargs basename) + find_vars $(dirname $start_script) $(dirname $start_script | xargs basename) + fi +done |
