mirror of
https://github.com/aclist/dztui.git
synced 2026-08-28 10:47:15 +02:00
chore: backport patch from testing
This commit is contained in:
parent
08f1f9f4d1
commit
773d24a00c
33
dzgui.sh
33
dzgui.sh
@ -496,20 +496,47 @@ stale_symlinks(){
|
||||
unlink "$l"
|
||||
done
|
||||
}
|
||||
|
||||
check_availability() {
|
||||
if [[ -z $1 ]]; then
|
||||
return 1
|
||||
fi
|
||||
local url=$1
|
||||
local timeout_sec="3"
|
||||
if [[ $2 ]]; then
|
||||
timeout_sec=$2
|
||||
fi
|
||||
if ! ping -w "$timeout_sec" "$url" > /dev/null 2>&1; then
|
||||
logger WARN "Failed to reach $url, service may be down."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
local_latlon(){
|
||||
if [[ -z $(command -v dig) ]]; then
|
||||
local local_ip=$(curl -Ls "https://ipecho.net/plain")
|
||||
local url_ipecho="https://ipecho.net/plain"
|
||||
if ! check_availability "ipecho.net"; then
|
||||
logger WARN "Failed to get external ip address, ipecho.net service may be down."
|
||||
return 1
|
||||
fi
|
||||
local local_ip=$(curl -Ls "$url_ipecho")
|
||||
else
|
||||
# TODO : implement checking remote
|
||||
local local_ip=$(dig -4 +short myip.opendns.com @resolver1.opendns.com)
|
||||
fi
|
||||
local url="http://ip-api.com/json/$local_ip"
|
||||
local res=$(curl -Ls "$url" | jq -r '"\(.lat)\n\(.lon)"')
|
||||
local url_ip_api="http://ip-api.com/json/$local_ip"
|
||||
if ! check_availability "ip-api.com"; then
|
||||
logger WARN "Failed to get local coordinates, ip-api.com service may be down."
|
||||
return 1
|
||||
fi
|
||||
local res=$(curl -Ls "$url_ip_api" | jq -r '"\(.lat)\n\(.lon)"')
|
||||
if [[ -z "$res" ]]; then
|
||||
logger WARN "Failed to get local coordinates"
|
||||
return 1
|
||||
fi
|
||||
echo "$res" > "$coords_file"
|
||||
}
|
||||
|
||||
lock(){
|
||||
[[ ! -f $lock_file ]] && touch $lock_file
|
||||
local pid=$(cat $lock_file)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user