mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-11 00:00:06 +00:00
added public IP segment for review/discussion
This commit is contained in:
parent
c5909e71ea
commit
5fdfd63e46
2 changed files with 49 additions and 1 deletions
|
@ -76,6 +76,7 @@ case $POWERLEVEL9K_MODE in
|
||||||
RUST_ICON ''
|
RUST_ICON ''
|
||||||
PYTHON_ICON $'\U1F40D' # 🐍
|
PYTHON_ICON $'\U1F40D' # 🐍
|
||||||
SWIFT_ICON ''
|
SWIFT_ICON ''
|
||||||
|
PUBLIC_IP_ICON ''
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
'awesome-fontconfig')
|
'awesome-fontconfig')
|
||||||
|
@ -131,9 +132,10 @@ case $POWERLEVEL9K_MODE in
|
||||||
VCS_GIT_GITLAB_ICON $'\uF296 ' #
|
VCS_GIT_GITLAB_ICON $'\uF296 ' #
|
||||||
VCS_HG_ICON $'\uF0C3 ' #
|
VCS_HG_ICON $'\uF0C3 ' #
|
||||||
VCS_SVN_ICON '(svn) '
|
VCS_SVN_ICON '(svn) '
|
||||||
RUST_ICON $'\uE6A8' #
|
RUST_ICON $'\uE6A8' #
|
||||||
PYTHON_ICON $'\U1F40D' # 🐍
|
PYTHON_ICON $'\U1F40D' # 🐍
|
||||||
SWIFT_ICON ''
|
SWIFT_ICON ''
|
||||||
|
PUBLIC_IP_ICON ''
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -192,6 +194,7 @@ case $POWERLEVEL9K_MODE in
|
||||||
RUST_ICON ''
|
RUST_ICON ''
|
||||||
PYTHON_ICON ''
|
PYTHON_ICON ''
|
||||||
SWIFT_ICON 'Swift'
|
SWIFT_ICON 'Swift'
|
||||||
|
PUBLIC_IP_ICON ''
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -426,6 +426,51 @@ prompt_battery() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prompt_public_ip() {
|
||||||
|
# set default values for segment
|
||||||
|
set_default POWERLEVEL9K_PUBLIC_IP_TIMOUT "300"
|
||||||
|
set_default POWERLEVEL9K_PUBLIC_IP_FILE "/tmp/p9k_public_ip"
|
||||||
|
set_default POWERLEVEL9K_PUBLIC_IP_HOST "http://ident.me"
|
||||||
|
|
||||||
|
# Do we need a fresh IP?
|
||||||
|
local refresh_ip=FALSE
|
||||||
|
if [[ -f $POWERLEVEL9K_PUBLIC_IP_FILE ]]; then
|
||||||
|
typeset -i timediff
|
||||||
|
timediff=$(($(date +%s) - $(date -r $POWERLEVEL9K_PUBLIC_IP_FILE +%s)))
|
||||||
|
[[ $timediff -gt '500' ]] && refresh_ip=TRUE
|
||||||
|
# this will run the IP refresh with each new prompt while disconnected
|
||||||
|
# but will get a new IP immediately once reconnected rather than waiting
|
||||||
|
# for the timeout, not sure if this is ideal behavior or not
|
||||||
|
[[ -z $(cat $POWERLEVEL9K_PUBLIC_IP_FILE) ]] && refresh_ip=TRUE
|
||||||
|
else
|
||||||
|
touch $POWERLEVEL9K_PUBLIC_IP_FILE && refresh_ip=TRUE
|
||||||
|
fi
|
||||||
|
|
||||||
|
# grab a fresh IP if needed
|
||||||
|
if [[ $refresh_ip =~ 'TRUE' && -w $POWERLEVEL9K_PUBLIC_IP_FILE ]]; then
|
||||||
|
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" =~ ^\; ]] && unset fresh_ip
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
[[ -n $fresh_ip ]] && echo $fresh_ip > $POWERLEVEL9K_PUBLIC_IP_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
# write IP to tmp file
|
||||||
|
local public_ip=$(cat $POWERLEVEL9K_PUBLIC_IP_FILE)
|
||||||
|
|
||||||
|
if [[ -n $public_ip ]]; then
|
||||||
|
$1_prompt_segment "$0" "$2" "black" "249" "${public_ip}" 'PUBLIC_IP_ICON'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Context: user@hostname (who am I and where am I)
|
# Context: user@hostname (who am I and where am I)
|
||||||
# Note that if $DEFAULT_USER is not set, this prompt segment will always print
|
# Note that if $DEFAULT_USER is not set, this prompt segment will always print
|
||||||
prompt_context() {
|
prompt_context() {
|
||||||
|
|
Loading…
Reference in a new issue