oxen-core/debian/oxen-service-node.config

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