42 lines
748 B
Bash
Executable File
42 lines
748 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
if [ $# -ne 1 ]; then
|
|
echo "Usage: $(basename $0) host" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
host=$1
|
|
|
|
get_port() {
|
|
data=$1
|
|
key=$2
|
|
echo "${data}" | gawk "match(\$0, /\"${key}\":\s+([0-9]+)/, a) {print a[1]}" -
|
|
}
|
|
|
|
# change dir to root of git repository
|
|
cd $(cd $(dirname $(readlink -f $0)) && git rev-parse --show-toplevel)
|
|
|
|
# get all testnet ports from configs/
|
|
ports=$(gawk 'match($0, /"backend_rpc":\s+([0-9]+)/, a) {print a[1]}' configs/coins/*.json)
|
|
|
|
for port in $ports
|
|
do
|
|
ssh -nNT -L $port:localhost:$port $host &
|
|
pid=$!
|
|
echo "Started tunnel to ${host}:${port} (pid: ${pid})"
|
|
done
|
|
|
|
at_exit() {
|
|
pkill -P $$
|
|
}
|
|
|
|
trap at_exit EXIT
|
|
|
|
sleep inf
|
|
# wait -n
|
|
# code=$?
|
|
#
|
|
# if [ $code != 0 ]; then
|
|
# exit $code
|
|
# fi
|