DHCPInfo/utils/pools.sh

41 lines
966 B
Bash
Executable File

#!/bin/bash
get_pool_declerations () {
local SECTION_CONTENT SECTION_NAME
local -n ARRAY="${1:?"get_pool_declerations: Array was not provided"}"
local CONTENT="${2:?"get_pool_declerations: Content to be parsed was not provided"}"
get_sections $POOL_BEGIN_REGEX ARRAY "$CONTENT"
}
get_pool_ranges () {
local -n ARRAY="${1:?"get_pool_range: Variable not passed in"}"
local CONTENT="${2:?"get_pool_range: Content not provided"}"
while read line; do
RANGE="${line/range /}"
RANGE="${RANGE/;/}"
ARRAY+=( "$RANGE" )
done <<< "$( grep -Eo $POOL_RANGE_REGEX <<< "$CONTENT" )"
}
test_pools () {
local -a POOLS
local CONTENT="${1:?"test_pools: Content not provided"}"
get_pool_declerations POOLS "$CONTENT"
for pool in ${!POOLS[@]}; do
echo "POOL: $pool"
POOL_CONTENT="${POOLS[$pool]}"
local -a RANGES
get_pool_ranges RANGES "$POOL_CONTENT"
for range in ${!RANGES[@]}; do
echo " RANGE: ${RANGES[$range]}"
done
unset RANGES
done
}