35 lines
633 B
Bash
Executable File
35 lines
633 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ $# -ne 1 ]; then
|
|
echo "Usage: $(basename $0) host" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
host=$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/
|
|
testnet_ports=$(gawk 'match($0, /"rpcURL":\s+"(http|ws):\/\/[^:]+:([0-9]+)"/, a) {print a[2]}' configs/*_testnet*.json)
|
|
|
|
for port in $testnet_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
|
|
|
|
wait -n
|
|
code=$?
|
|
|
|
if [ $code != 0 ]; then
|
|
exit $code
|
|
fi
|