rc.library: code optimization for ipv6 max/min

This commit is contained in:
bergware
2023-07-10 04:15:50 +02:00
parent d815c6aa49
commit c95555a18f

View File

@@ -75,10 +75,8 @@ max6() {
min6() {
# ipv6 address in short notation
[[ -n $1 ]] && read a m < <(IFS=/; echo $1) || return
a=${a/$(grep -Po '(^|:)(0{1,4}(:|$)){1,8}' <<< $a|sort|tail -1)/:-:}
a=$(for q in ${a//:/ }; do [[ $q != - ]] && printf "$d%x" "0x$q" || printf "$d"; d=:; done)
[[ ${a:0:1} == : ]] && a=:$a
[[ ${a:${#a}-1} == : ]] && a=$a:
a=$(for q in ${a//:/ }; do printf "$d%x" "0x$q"; d=:; done)
a=${a/$(grep -Po '(^|:)(0(:|$)){1,8}' <<< $a|sort|tail -1)/::}
[[ -z $m ]] && echo $a || echo $a/$m
}