when ifconfig is not available, use ip; fixes #305

pull/328/head
romkatv 5 years ago
parent ff305e3d45
commit 39b2064a97

@ -3428,17 +3428,29 @@ _p9k_preexec() {
function _p9k_set_iface() { function _p9k_set_iface() {
_p9k_iface=() _p9k_iface=()
[[ -x /sbin/ifconfig ]] || return if [[ -x /sbin/ifconfig ]]; then
local line local line
local iface local iface
for line in ${(f)"$(/sbin/ifconfig 2>/dev/null)"}; do for line in ${(f)"$(/sbin/ifconfig 2>/dev/null)"}; do
if [[ $line == (#b)([^[:space:]]##):[[:space:]]##flags=(<->)'<'* ]]; then if [[ $line == (#b)([^[:space:]]##):[[:space:]]##flags=(<->)'<'* ]]; then
[[ $match[2] == *[13579] ]] && iface=$match[1] || iface= [[ $match[2] == *[13579] ]] && iface=$match[1] || iface=
elif [[ -n $iface && $line == (#b)[[:space:]]##inet[[:space:]]##([0-9.]##)* ]]; then elif [[ -n $iface && $line == (#b)[[:space:]]##inet[[:space:]]##([0-9.]##)* ]]; then
_p9k_iface[$iface]=$match[1] _p9k_iface[$iface]=$match[1]
iface= iface=
fi fi
done done
elif [[ -x /sbin/ip ]]; then
local line
local iface
for line in ${(f)"$(/sbin/ip -4 a show 2>/dev/null)"}; do
if [[ $line == (#b)<->:[[:space:]]##([^:]##):[[:space:]]##\<([^\>]#)\>* ]]; then
[[ ,$match[2], == *,UP,* ]] && iface=$match[1] || iface=
elif [[ -n $iface && $line == (#b)[[:space:]]##inet[[:space:]]##([0-9.]##)* ]]; then
_p9k_iface[$iface]=$match[1]
iface=
fi
done
fi
} }
function _p9k_build_segment() { function _p9k_build_segment() {

Loading…
Cancel
Save