Move public IP address detection out of bash

This commit is contained in:
Michael Vines
2018-06-29 16:49:23 -07:00
committed by Grimes
parent a31889f129
commit 450f271cf7
6 changed files with 52 additions and 30 deletions

View File

@ -1,53 +1,45 @@
#!/bin/bash
num_tokens=1000000000
public_ip=
here=$(dirname "$0")
# shellcheck source=multinode-demo/common.sh
source "$here"/common.sh
usage () {
cat <<EOF
usage: $0 [-n num_tokens] [-P] [-p public_ip_address]
usage: $0 [-n num_tokens] [-l] [-p]
Creates a fullnode configuration
-n num_tokens - Number of tokens to create
-p public_ip_address - Public IP address to advertise
(default uses the system IP address, which may be
on a private network)
-P - Autodetect the public IP address of the machine
-n num_tokens - Number of tokens to create
-l - Detect network address from local machine configuration, which
may be a private IP address unaccessible on the Intenet (default)
-p - Detect public address using public Internet servers
EOF
}
while getopts "h?n:p:P" opt; do
ip_address_arg=-l
num_tokens=1000000000
while getopts "h?n:lp" opt; do
case $opt in
h|\?)
usage
exit 0
;;
l)
ip_address_arg=-l
;;
p)
public_ip="$OPTARG"
ip_address_arg=-p
;;
n)
num_tokens="$OPTARG"
;;
P)
public_ip="$(curl -s ifconfig.co)"
echo "Public IP autodetected as $public_ip"
;;
esac
done
if [[ -n "$public_ip" ]]; then
leader_address_args=(-b "$public_ip":8000)
validator_address_args=(-b "$public_ip":9000)
else
leader_address_args=(-d)
validator_address_args=(-d -b 9000)
fi
leader_address_args=("$ip_address_arg")
validator_address_args=("$ip_address_arg" -b 9000)
set -e