cleanup in nordvpn

pull/145/head
romkatv 5 years ago
parent fb50402fc9
commit 0e31c204f7

@ -2957,43 +2957,43 @@ typeset -gra __p9k_nordvpn_tag=(
function _p9k_fetch_nordvpn_status() { function _p9k_fetch_nordvpn_status() {
setopt err_return setopt err_return
unset $__p9k_nordvpn_tag P9K_NORDVPN_COUNTRY_CODE
(( $+commands[nordvpn] ))
[[ -e /run/nordvpnd.sock ]]
local REPLY local REPLY
zsocket /run/nordvpnd.sock 2>/dev/null zsocket /run/nordvpnd.sock
local -i fd=$REPLY local -i fd=$REPLY
{ {
>&$fd echo -nE - $'PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n\0\0\0\4\1\0\0\0\0\0\0N\1\4\0\0\0\1\203\206E\221bA\226\223\325\\k\337\31i=LnH\323j?A\223\266\243y\270\303\fYmLT{$\357]R.\203\223\257_\213\35u\320b\r&=LMedz\212\232\312\310\264\307`+\210K\203@\2te\206M\2035\5\261\37\0\0\5\0\1\0\0\0\1\0\0\0\0\0' >&$fd echo -nE - $'PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n\0\0\0\4\1\0\0\0\0\0\0N\1\4\0\0\0\1\203\206E\221bA\226\223\325\\k\337\31i=LnH\323j?A\223\266\243y\270\303\fYmLT{$\357]R.\203\223\257_\213\35u\320b\r&=LMedz\212\232\312\310\264\307`+\210K\203@\2te\206M\2035\5\261\37\0\0\5\0\1\0\0\0\1\0\0\0\0\0'
local tag len val local tag len val
local -i n local -i n
IFS='' read -r tag <&3 IFS='' read -t 0.25 -r tag <&3
tag=$'\015' tag=$'\015'
while true; do while true; do
tag=${__p9k_char2byte[${(q+)tag}]:-0} tag=${__p9k_char2byte[${(q+)tag}]:-0}
(( (tag >>= 3) && tag <= $#__p9k_nordvpn_tag )) || break (( (tag >>= 3) && tag <= $#__p9k_nordvpn_tag )) || break
tag=$__p9k_nordvpn_tag[tag] tag=$__p9k_nordvpn_tag[tag]
sysread -c n -s 1 len <&3 sysread -c n -s 1 -t 0.25 len <&3
(( n == 1 ))
len=${__p9k_char2byte[${(q+)len}]} len=${__p9k_char2byte[${(q+)len}]}
[[ -n $len ]] [[ -n $len ]]
val= val=
(( ! len )) || { (( ! len )) || {
sysread -c n -s $len val <&3 sysread -c n -s $len -t 0.25 val <&3
(( n == len )) (( n == len ))
} }
typeset -g $tag=$val typeset -g $tag=$val
sysread -c n -s 1 tag <&3 sysread -c n -s 1 -t 0.25 tag <&3
(( n < 2 ))
done done
} always { } always {
exec {fd}>&- exec {fd}>&-
[[ $P9K_NORDVPN_SERVER != (#b)([[:alpha:]]##)[[:digit:]]##.nordvpn.com ]] || P9K_NORDVPN_COUNTRY_CODE=${(U)match[1]}
} }
} }
function prompt_nordvpn() { function prompt_nordvpn() {
_p9k_fetch_nordvpn_status unset $__p9k_nordvpn_tag P9K_NORDVPN_COUNTRY_CODE
if [[ $+commands[nordvpn] == 1 && -e /run/nordvpnd.sock ]]; then
_p9k_fetch_nordvpn_status 2>/dev/null
if [[ $P9K_NORDVPN_SERVER == (#b)([[:alpha:]]##)[[:digit:]]##.nordvpn.com ]]; then
typeset -g P9K_NORDVPN_COUNTRY_CODE=${(U)match[1]}
fi
fi
case $P9K_NORDVPN_STATUS in case $P9K_NORDVPN_STATUS in
'') '')
_p9k_prompt_segment $0_MISSING blue white '' 0 '' '';; _p9k_prompt_segment $0_MISSING blue white '' 0 '' '';;

Loading…
Cancel
Save