INNER CODE UNIT · Shell
out
bivlked/amneziawg-installer · awg_common.sh:2446
out=$(ip -4 -o addr show awg0 2>/dev/null \
| awk '{ for (i = 1; i <= NF; i++) if ($i == "inet") { print $(i + 1); exit } }')
if [[ -z "$out" && -r "$SERVER_CONF_FILE" ]]; then
out=$(awk '
/^[[:space:]]*#/ { next }
/^[[:space:]]*\[/ { inif = (tolower($0) ~ /^[[:space:]]*\[interface\]/) ? 1 : 0; next }
inif && tolower($0) ~ /^[[:space:]]*address[[:space:]]*=/ {
sub(/^[^=]*=[[:space:]]*/, "")
n = split($0, parts, ",")
for (i = 1; i <= n; i++) {
gsub(/[[:space:]]/, "", parts[i])
if (parts[i] ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\/[0-9]+$/) { print parts[i]; exit }
}
}' "$SERVER_CONF_FILE")
fi
[[ -z "$out" && -n "${AWG_TUNNEL_SUBNET:-}" ]] && out="$AWG_TUNNEL_SUBNET"
printf '%s' "$out"
}