|
#! /bin/bash
|
|
set -u
|
|
|
|
N=$1 # number of nodes
|
|
TESTNET=$2 # path to folder containing testnet info
|
|
CONFIG=$3 # path to folder containing `bins` and `run.sh` files
|
|
|
|
if [[ ! -f $CONFIG/bins ]]; then
|
|
echo "config folder ($CONFIG) must contain bins file"
|
|
exit 1
|
|
fi
|
|
if [[ ! -f $CONFIG/run.sh ]]; then
|
|
echo "config folder ($CONFIG) must contain run.sh file"
|
|
exit 1
|
|
fi
|
|
|
|
KEY=$HOME/.ssh/id_rsa
|
|
|
|
FLAGS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
|
|
|
|
N_=$((N-1)) # 0-based index
|
|
|
|
MACH_ROOT="$TESTNET/mach?"
|
|
|
|
|
|
# mkdir
|
|
terraforce ssh --user root --ssh-key $KEY --machines "[0-$N_]" mkdir .tendermint
|
|
|
|
# copy over genesis/priv_val
|
|
terraforce scp --user root --ssh-key $KEY --iterative --machines "[0-$N_]" "$MACH_ROOT/priv_validator.json" .tendermint/priv_validator.json
|
|
terraforce scp --user root --ssh-key $KEY --iterative --machines "[0-$N_]" "$MACH_ROOT/genesis.json" .tendermint/genesis.json
|
|
|
|
# copy the run script
|
|
terraforce scp --user root --ssh-key $KEY --machines "[0-$N_]" $CONFIG/run.sh run.sh
|
|
|
|
# copy the binaries
|
|
while read line; do
|
|
local_bin=$(eval echo $line)
|
|
remote_bin=$(basename $local_bin)
|
|
echo $local_bin
|
|
terraforce scp --user root --ssh-key $KEY --machines "[0-$N_]" $local_bin $remote_bin
|
|
terraforce ssh --user root --ssh-key $KEY --machines "[0-$N_]" chmod +x $remote_bin
|
|
done <$CONFIG/bins
|