From db24abae65e72c51447e60e10cf26f45d025b84a Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me> Date: Sat, 17 Oct 2020 03:14:12 -0400 Subject: [PATCH] Added ability for a single service to holst multiple http servers at once with named subservices. --- swarm-gen/swarm-gen | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/swarm-gen/swarm-gen b/swarm-gen/swarm-gen index 30ef9ea..8128c50 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 -- GitLab