mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-22 20:30:07 +00:00
Merge pull request #391 from dritter/simplify_public_ip
Simplify `public_ip` segment
This commit is contained in:
commit
2397d02acc
2 changed files with 13 additions and 30 deletions
|
@ -348,7 +348,7 @@ segment will not be displayed.
|
||||||
|`POWERLEVEL9K_PUBLIC_IP_FILE`|'/tmp/p8k_public_ip'|This is the file your public IP is cached in.|
|
|`POWERLEVEL9K_PUBLIC_IP_FILE`|'/tmp/p8k_public_ip'|This is the file your public IP is cached in.|
|
||||||
|`POWERLEVEL9K_PUBLIC_IP_HOST`|'http://ident.me'|This is the default host to get your public IP.|
|
|`POWERLEVEL9K_PUBLIC_IP_HOST`|'http://ident.me'|This is the default host to get your public IP.|
|
||||||
|`POWERLEVEL9K_PUBLIC_IP_TIMEOUT`|300|The amount of time in seconds between refreshing your cached IP.|
|
|`POWERLEVEL9K_PUBLIC_IP_TIMEOUT`|300|The amount of time in seconds between refreshing your cached IP.|
|
||||||
|`POWERLEVEL9K_PUBLIC_IP_METHOD`|None|You can set this to any of 'dig', 'curl', or 'wget' to only use that method to refresh your IP.|
|
|`POWERLEVEL9K_PUBLIC_IP_METHODS`|(dig curl wget)| These methods in that order are used to refresh your IP.|
|
||||||
|`POWERLEVEL9K_PUBLIC_IP_NONE`|None|The string displayed when an IP was not obtained|
|
|`POWERLEVEL9K_PUBLIC_IP_NONE`|None|The string displayed when an IP was not obtained|
|
||||||
|
|
||||||
##### rbenv
|
##### rbenv
|
||||||
|
|
|
@ -480,6 +480,7 @@ prompt_public_ip() {
|
||||||
set_default POWERLEVEL9K_PUBLIC_IP_NONE ""
|
set_default POWERLEVEL9K_PUBLIC_IP_NONE ""
|
||||||
set_default POWERLEVEL9K_PUBLIC_IP_FILE "/tmp/p9k_public_ip"
|
set_default POWERLEVEL9K_PUBLIC_IP_FILE "/tmp/p9k_public_ip"
|
||||||
set_default POWERLEVEL9K_PUBLIC_IP_HOST "http://ident.me"
|
set_default POWERLEVEL9K_PUBLIC_IP_HOST "http://ident.me"
|
||||||
|
defined POWERLEVEL9K_PUBLIC_IP_METHODS || POWERLEVEL9K_PUBLIC_IP_METHODS=(dig curl wget)
|
||||||
|
|
||||||
# Do we need a fresh IP?
|
# Do we need a fresh IP?
|
||||||
local refresh_ip=false
|
local refresh_ip=false
|
||||||
|
@ -496,44 +497,26 @@ prompt_public_ip() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# grab a fresh IP if needed
|
# grab a fresh IP if needed
|
||||||
|
local fresh_ip
|
||||||
if [[ $refresh_ip =~ true && -w $POWERLEVEL9K_PUBLIC_IP_FILE ]]; then
|
if [[ $refresh_ip =~ true && -w $POWERLEVEL9K_PUBLIC_IP_FILE ]]; then
|
||||||
# if method specified, don't use fallback methods
|
for method in "${POWERLEVEL9K_PUBLIC_IP_METHODS[@]}"; do
|
||||||
if [[ -n $POWERLEVEL9K_PUBLIC_IP_METHOD ]] && [[ $POWERLEVEL9K_PUBLIC_IP_METHOD =~ 'wget|curl|dig' ]]; then
|
|
||||||
local method=$POWERLEVEL9K_PUBLIC_IP_METHOD
|
|
||||||
fi
|
|
||||||
if [[ -n $method ]]; then
|
|
||||||
case $method in
|
case $method in
|
||||||
'dig')
|
'dig')
|
||||||
if type -p dig >/dev/null; then
|
fresh_ip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com 2> /dev/null)"
|
||||||
fresh_ip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com 2> /dev/null)"
|
[[ "$fresh_ip" =~ ^\; ]] && unset fresh_ip
|
||||||
[[ "$fresh_ip" =~ ^\; ]] && unset fresh_ip
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
'curl')
|
'curl')
|
||||||
if [[ -z "$fresh_ip" ]] && type -p curl >/dev/null; then
|
fresh_ip="$(curl --max-time 10 -w '\n' "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
|
||||||
fresh_ip="$(curl --max-time 10 -w '\n' "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
'wget')
|
'wget')
|
||||||
if [[ -z "$fresh_ip" ]] && type -p wget >/dev/null; then
|
fresh_ip="$(wget -T 10 -qO- "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
|
||||||
fresh_ip="$(wget -T 10 -qO- "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
# If we found a fresh IP, break loop.
|
||||||
if type -p dig >/dev/null; then
|
if [[ -n "${fresh_ip}" ]]; then
|
||||||
fresh_ip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com 2> /dev/null)"
|
break;
|
||||||
[[ "$fresh_ip" =~ ^\; ]] && unset fresh_ip
|
|
||||||
fi
|
fi
|
||||||
|
done
|
||||||
if [[ -z "$fresh_ip" ]] && type -p curl >/dev/null; then
|
|
||||||
fresh_ip="$(curl --max-time 10 -w '\n' "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$fresh_ip" ]] && type -p wget >/dev/null; then
|
|
||||||
fresh_ip="$(wget -T 10 -qO- "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# write IP to tmp file or clear tmp file if an IP was not retrieved
|
# write IP to tmp file or clear tmp file if an IP was not retrieved
|
||||||
# Redirection with `>!`. From the manpage: Same as >, except that the file
|
# Redirection with `>!`. From the manpage: Same as >, except that the file
|
||||||
|
@ -544,7 +527,7 @@ prompt_public_ip() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# read public IP saved to tmp file
|
# read public IP saved to tmp file
|
||||||
local public_ip=$(cat $POWERLEVEL9K_PUBLIC_IP_FILE)
|
local public_ip="$(cat $POWERLEVEL9K_PUBLIC_IP_FILE)"
|
||||||
|
|
||||||
# Draw the prompt segment
|
# Draw the prompt segment
|
||||||
if [[ -n $public_ip ]]; then
|
if [[ -n $public_ip ]]; then
|
||||||
|
|
Loading…
Reference in a new issue