# extract existing set configuration to create temporary set
(set -o pipefail; $IPSET save "${set_name}${v}" 2>/dev/null | grep -m 1 '^create ' | sed "s/\(create ${set_name}${v}\)/\1-tmp/") || continue
# populate with new data
- decommentcat "${set_name}.cidr" "${set_name}.cidr.$(hostname -s)" 2>/dev/null | sed -n 's/\(.*'"${vmatch}"'.*\)/add '"${set_name}${v}-tmp"' \1/p'
+ decommentcat "${set_name}.cidr" "${set_name}.cidr.$(hostname -s)" 2>/dev/null | sed -n 's/\(.*'"${vmatch}"'.*\)/add '"${set_name}${v}-tmp"' \1/p' | sort -n | uniq
done
}
case "${s}" in
*/*) add_service_entry "${s}"
;;
- *) for svc in $(getent services "${s}" | awk '{print $2}')
+ *) for svc in $(egrep "^${s}\s+" /etc/services | decommentcat | awk '{print $2}')
do
add_service_entry "${svc}"
done