summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Ritter <dritter03@googlemail.com>2019-01-23 03:02:42 +0300
committerDominik Ritter <dritter03@googlemail.com>2019-01-23 03:02:42 +0300
commit54a985cb11861f3857daa7001558f015d971dc3d (patch)
tree684ba98e8d24edf9c7112587e28e428ba5b10317
parent480ade162bd6a99b5c71dab12579bf613da03715 (diff)
Simplify code that checks if a VPN is running
-rwxr-xr-xpowerlevel9k.zsh-theme15
-rwxr-xr-xtest/segments/public_ip.spec8
2 files changed, 10 insertions, 13 deletions
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 6902ed10..7437fe32 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -600,17 +600,12 @@ prompt_public_ip() {
# Check VPN is on if VPN interface is set
if [[ -n $POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE ]]; then
if [[ "$OS" == "OSX" ]]; then
- for vpn_iface in $(${ROOT_PREFIX}/sbin/ifconfig | grep -e "^$POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE" | cut -d":" -f1)
- do
- icon='VPN_ICON'
- break
- done
+ local interface="$(${ROOT_PREFIX}/sbin/ifconfig $POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE)"
+ # Check if interface is UP.
+ [[ "$interface" =~ "<UP," ]] && icon='VPN_ICON'
else
- for vpn_iface in $(${ROOT_PREFIX}/sbin/ip link ls up | grep -o -E ":\s+[a-z0-9]+:" | grep -v "lo" | grep -o -E "[a-z0-9]+" | grep -o -E "^$POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE.*")
- do
- icon='VPN_ICON'
- break
- done
+ local interface=$(${ROOT_PREFIX}/sbin/ip -brief -4 a show "${POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE}")
+ [[ -n "$interface" ]] && icon='VPN_ICON'
fi
fi
$1_prompt_segment "$0" "$2" "$DEFAULT_COLOR" "$DEFAULT_COLOR_INVERTED" "${public_ip}" "$icon"
diff --git a/test/segments/public_ip.spec b/test/segments/public_ip.spec
index eeb50596..8e44d0e1 100755
--- a/test/segments/public_ip.spec
+++ b/test/segments/public_ip.spec
@@ -36,13 +36,15 @@ function tearDown() {
}
function fakeIfconfig() {
+ local INTERFACE="${1}"
+ [[ -z "${INTERFACE}" ]] && INTERFACE="tun0"
# Fake ifconfig
cat > $FOLDER/sbin/ifconfig <<EOF
#!/usr/bin/env zsh
if [[ "\$#" -gt 0 ]]; then
cat <<INNER
-tun1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
+${INTERFACE}: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 1.2.3.4 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
@@ -62,7 +64,7 @@ docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-tun1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
+${INTERFACE}: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 1.2.3.4 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
@@ -337,7 +339,7 @@ function testPublicIpSegmentWithVPNTurnedOnOsx() {
}
# Fake ifconfig
- fakeIfconfig
+ fakeIfconfig "tun1"
assertEquals "%K{000} %F{007}(vpn) %f%F{007}1.2.3.4 " "$(prompt_public_ip left 1 false "$FOLDER")"