From fe9f78b9b71c55f597df40668f09d89599c4eae1 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 30 Jan 2026 15:22:11 -0700 Subject: [PATCH] script update for semicolon instead of return --- lxc1/keepalived/deploy_keepalived.sh | 33 ++++++++++++---------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/lxc1/keepalived/deploy_keepalived.sh b/lxc1/keepalived/deploy_keepalived.sh index 1ae1ee8..136ce72 100644 --- a/lxc1/keepalived/deploy_keepalived.sh +++ b/lxc1/keepalived/deploy_keepalived.sh @@ -1,9 +1,8 @@ #!/bin/bash cd /docker/keepalived -# 1. MANUAL VARIABLE EXTRACTION (No more sourcing!) +# 1. MANUAL EXTRACTION get_env_val() { - # Greps the key, gets the value after =, and strips surrounding quotes grep "^${1}=" .env | cut -d'=' -f2- | sed 's/^"//;s/"$//' } @@ -11,29 +10,25 @@ LXC_NUM=$(get_env_val "LXC_NUM") SLOT_DEFINITIONS=$(get_env_val "SLOT_DEFINITIONS") BASE_PASSWORD=$(get_env_val "BASE_PASSWORD") -# Debug check -echo "Generator started for LXC: $LXC_NUM" - # 2. PATHS -CONFIG_DIR="./config" -HEADER_TPL="./keepalived_header.tpl" -SLOT_TPL="./keepalived_slot.tpl" -CONFIG_FILE="${CONFIG_DIR}/keepalived.conf" - -mkdir -p "$CONFIG_DIR" "./checks" - -# 3. BUILD HEADER -cp "$HEADER_TPL" "$CONFIG_FILE" +CONFIG_FILE="./config/keepalived.conf" +mkdir -p ./config ./checks +cp "./keepalived_header.tpl" "$CONFIG_FILE" sed -i "s/{{LXC_NUM}}/${LXC_NUM}/g" "$CONFIG_FILE" -# 4. PARSE SLOTS -echo "$SLOT_DEFINITIONS" | while IFS=',' read -r s_num s_name s_dep s_state s_prio s_peer s_vip junk -do +# 3. DUAL-STAGE PARSING +# First, we split the string into individual slots using the semicolon +IFS=';' read -ra SLOTS <<< "$SLOT_DEFINITIONS" + +for SLOT in "${SLOTS[@]}"; do + # Now we split the individual slot by commas + IFS=',' read -r s_num s_name s_dep s_state s_prio s_peer s_vip junk <<< "$SLOT" + [[ -z "$s_num" ]] && continue echo "Processing Slot $s_num: $s_name" TEMP_SLOT="/tmp/slot_${s_num}.conf" - cp "$SLOT_TPL" "$TEMP_SLOT" + cp "./keepalived_slot.tpl" "$TEMP_SLOT" AUTH_PASS="${BASE_PASSWORD:0:7}-${s_num}" @@ -51,6 +46,6 @@ do rm "$TEMP_SLOT" done -# 5. PERMS +# 4. FINALIZE cp ./check_services.sh ./checks/check_services.sh chmod +x ./checks/check_services.sh \ No newline at end of file