01e90ec2e5
This script will generate the minimal-environment-variables doc based on the what each services has in the check_required_var field. Anytime that field is changed run this script and commit the changes. Since Neutron is a thick container, the script will get a few duplicates in the neutron-agents field. When Neutron is thinned out, this script will function normally. Closes-bug: #1459347 Co-Authored-By: Lon Hohberger <lhh@redhat.com> Change-Id: I1ba6bd5148af12cacfd872591b3c7b84a8dccba2
69 lines
1.9 KiB
Bash
Executable File
69 lines
1.9 KiB
Bash
Executable File
#!/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
|