mirror of https://github.com/oxen-io/oxen-core.git
66 lines
2.0 KiB
Bash
66 lines
2.0 KiB
Bash
#!/bin/sh -e
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
I="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])"
|
|
IPREGEX="^$I\.$I\.$I\.$I$"
|
|
|
|
# Transition: check for a value set via the old package name, and if so copy it to the new name so
|
|
# that we don't re-prompt the user:
|
|
if db_get loki-service-node/ip-address && [ -n "$RET" ]; then
|
|
db_set oxen-service-node/ip-address "$RET"
|
|
db_fset oxen-service-node/ip-address seen true
|
|
db_reset loki-service-node/ip-address
|
|
fi
|
|
|
|
while true; do
|
|
db_input high oxen-service-node/ip-address || true
|
|
db_go
|
|
db_get oxen-service-node/ip-address
|
|
IP="$RET"
|
|
|
|
if echo "$IP" | grep -qE "$IPREGEX"; then
|
|
break
|
|
elif [ "$IP" = "" ]; then
|
|
errfile=$(mktemp)
|
|
IP=$(curl -sS http://api.ipify.org || true)
|
|
curl_error=$(cat $errfile)
|
|
rm -f ${errfile}
|
|
|
|
if echo "$IP" | grep -qE "$IPREGEX"; then
|
|
db_set oxen-service-node/ip-address "$IP"
|
|
db_subst oxen-service-node/confirm-ip-lookup IP "$IP"
|
|
db_input high oxen-service-node/confirm-ip-lookup
|
|
db_go
|
|
db_get oxen-service-node/confirm-ip-lookup
|
|
if [ "$RET" = "true" ]; then
|
|
break
|
|
fi
|
|
db_reset oxen-service-node/ip-address
|
|
else
|
|
db_subst oxen-service-node/ip-lookup-failed REASON "${curl_error}"
|
|
db_input high oxen-service-node/ip-lookup-failed
|
|
db_go
|
|
db_get oxen-service-node/ip-lookup-failed
|
|
RETRY="$RET"
|
|
db_reset oxen-service-node/ip-lookup-failed
|
|
if [ "$RETRY" = "true" ]; then
|
|
db_reset oxen-service-node/ip-address
|
|
else
|
|
break
|
|
fi
|
|
fi
|
|
else
|
|
db_input high oxen-service-node/invalid-ip
|
|
db_go
|
|
db_get oxen-service-node/invalid-ip
|
|
RETRY="$RET"
|
|
db_reset oxen-service-node/invalid-ip
|
|
if [ "$RETRY" = "true" ]; then
|
|
db_reset oxen-service-node/ip-address
|
|
else
|
|
break
|
|
fi
|
|
fi
|
|
done
|