diff --git a/swarm-gen/swarm-gen b/swarm-gen/swarm-gen index 30ef9ea4487c015663cdce99f4c2b06d059ad090..8128c508922384787f79bfa4fc1f608ac05ca5d0 100755 --- a/swarm-gen/swarm-gen +++ b/swarm-gen/swarm-gen @@ -40,9 +40,12 @@ do #echo "processing service names..." BLOCKS_PROCESSED="" - for SERVICE_NAME in ${SERVICE_NAMES[@]}; + for SERVICE_NAME in ${SERVICE_NAMES[@]} do SERVICE_ENTRY=$(echo "$SERVICE_ENTRIES" | jq -r ".[\"${SERVICE_NAME}\"]") + SUBSERVICE_NAMES=$(echo "${SERVICE_ENTRY}" | jq -r '. | keys' | sed 's/^[[:space:]]*\"//g' | sed 's/[[:space:]]*$//g' | sed 's/[[:space:]]*,$//g' | sed 's/\"$//g' | grep "swarm-proxy-[^_]\{1,\}_.\{1,\}" | sed 's/^[^_]*_//g' | sort | uniq) + + #echo "Subservice names: ${SUBSERVICE_NAMES[@]}" #echo "${SERVICE_ENTRY}" #echo "=========" @@ -57,10 +60,24 @@ do BLOCK_PROCESSED=$(echo "$SERVICE_BLOCK" | sed '/\#\#\# BEGIN SERVICE \#\#\#/d' | sed '/\#\#\# END SERVICE \#\#\#/d') BLOCK_PROCESSED=$(echo "$BLOCK_PROCESSED" | sed "s/\${HOST}/${PROXY_HOST}/g" | sed "s/\${PORT}/${PROXY_PORT}/g" | sed "s/\${UPSTREAM}/${PROXY_UPSTREAM}/g" | sed "s/\${EMAIL}/${PROXY_EMAIL}/g" ) BLOCKS_PROCESSED="${BLOCK_PROCESSED}"$'\n'"${BLOCKS_PROCESSED}" + + for SUBSERVICE_NAME in ${SUBSERVICE_NAMES[@]} + do + PROXY_HOST=$(echo "$SERVICE_ENTRY" | jq -r ".[\"swarm-proxy-host_${SUBSERVICE_NAME}\"]") + PROXY_PORT=$(echo "$SERVICE_ENTRY" | jq -r ".[\"swarm-proxy-port_${SUBSERVICE_NAME}\"]") + PROXY_UPSTREAM=$(echo "$SERVICE_ENTRY" | jq -r ".[\"swarm-proxy-upstream_${SUBSERVICE_NAME}\"]") + PROXY_EMAIL=$(echo "$SERVICE_ENTRY" | jq -r ".[\"swarm-proxy-email_${SUBSERVICE_NAME}\"]") + + BLOCK_PROCESSED=$(echo "$SERVICE_BLOCK" | sed '/\#\#\# BEGIN SERVICE \#\#\#/d' | sed '/\#\#\# END SERVICE \#\#\#/d') + BLOCK_PROCESSED=$(echo "$BLOCK_PROCESSED" | sed "s/\${HOST}/${PROXY_HOST}/g" | sed "s/\${PORT}/${PROXY_PORT}/g" | sed "s/\${UPSTREAM}/${PROXY_UPSTREAM}/g" | sed "s/\${EMAIL}/${PROXY_EMAIL}/g" ) + BLOCKS_PROCESSED="${BLOCK_PROCESSED}"$'\n'"${BLOCKS_PROCESSED}" + done + #echo "Processed:" #echo "$BLOCK_PROCESSED" #echo "-------------------" fi + done