From e09b8430ce0f8a5f6a38c6aeb6e92f1b0d4dfbf7 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Mon, 2 Jul 2018 17:08:39 -0700 Subject: [PATCH] Add |wallet reset| command --- multinode-demo/client.sh | 11 +++++------ multinode-demo/common.sh | 1 + multinode-demo/test/wallet-sanity.sh | 3 +-- multinode-demo/wallet.sh | 22 +++++++++++++++------- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/multinode-demo/client.sh b/multinode-demo/client.sh index 9c0455ec3f..066d46813b 100755 --- a/multinode-demo/client.sh +++ b/multinode-demo/client.sh @@ -6,7 +6,6 @@ here=$(dirname "$0") # shellcheck source=multinode-demo/common.sh source "$here"/common.sh -SOLANA_CONFIG_DIR="$SOLANA_CONFIG_DIR"-client leader=${1:-${here}/..} # Default to local solana repo count=${2:-1} @@ -14,11 +13,11 @@ count=${2:-1} rsync_leader_url=$(rsync_url "$leader") set -ex -mkdir -p "$SOLANA_CONFIG_DIR" -$rsync -vPz "$rsync_leader_url"/config/leader.json "$SOLANA_CONFIG_DIR"/ -$rsync -vPz "$rsync_leader_url"/config-private/mint.json "$SOLANA_CONFIG_DIR"/ +mkdir -p "$SOLANA_CONFIG_CLIENT_DIR" +$rsync -vPz "$rsync_leader_url"/config/leader.json "$SOLANA_CONFIG_CLIENT_DIR"/ +$rsync -vPz "$rsync_leader_url"/config-private/mint.json "$SOLANA_CONFIG_CLIENT_DIR"/ # shellcheck disable=SC2086 # $solana_client_demo should not be quoted exec $solana_client_demo \ - -n "$count" -l "$SOLANA_CONFIG_DIR"/leader.json \ - < "$SOLANA_CONFIG_DIR"/mint.json + -n "$count" -l "$SOLANA_CONFIG_CLIENT_DIR"/leader.json \ + < "$SOLANA_CONFIG_CLIENT_DIR"/mint.json diff --git a/multinode-demo/common.sh b/multinode-demo/common.sh index c6b9b33e59..f17d970e29 100644 --- a/multinode-demo/common.sh +++ b/multinode-demo/common.sh @@ -60,6 +60,7 @@ export RUST_BACKTRACE=1 SOLANA_CONFIG_DIR=${SNAP_DATA:-$PWD}/config SOLANA_CONFIG_PRIVATE_DIR=${SNAP_DATA:-$PWD}/config-private +SOLANA_CONFIG_CLIENT_DIR=${SNAP_USER_DATA:-$PWD}/config-client-client rsync_url() { # adds the 'rsync://` prefix to URLs that need it declare url="$1" diff --git a/multinode-demo/test/wallet-sanity.sh b/multinode-demo/test/wallet-sanity.sh index 7656abad92..6b8577ccd6 100755 --- a/multinode-demo/test/wallet-sanity.sh +++ b/multinode-demo/test/wallet-sanity.sh @@ -22,8 +22,7 @@ check_balance_output() { } # Ensure a fresh client configuration every time -rm -rf config-client - +$wallet reset $wallet address check_balance_output "No account found! Request an airdrop to get started" $wallet airdrop --tokens 100 diff --git a/multinode-demo/wallet.sh b/multinode-demo/wallet.sh index cd47324548..a9299f4a52 100755 --- a/multinode-demo/wallet.sh +++ b/multinode-demo/wallet.sh @@ -6,10 +6,9 @@ here=$(dirname "$0") # shellcheck source=multinode-demo/common.sh source "$here"/common.sh -SOLANA_CONFIG_DIR="$SOLANA_CONFIG_DIR"-client # if $1 isn't host:path, something.com, or a valid local path -if [[ ${1%:} != "$1" || "$1" =~ [^.].[^.] || -d $1 ]]; then +if [[ ${1%:} != "$1" || "$1" =~ [^.]\.[^.] || -d $1 ]]; then leader=$1 # interpret shift else @@ -20,15 +19,24 @@ else fi fi +if [[ "$1" = "reset" ]]; then + echo Wallet resetting + rm -rf "$SOLANA_CONFIG_CLIENT_DIR" + exit 0 +fi + rsync_leader_url=$(rsync_url "$leader") set -e -mkdir -p "$SOLANA_CONFIG_DIR" -if [[ ! -r "$SOLANA_CONFIG_DIR"/leader.json ]]; then - $rsync -vPz "$rsync_leader_url"/config/leader.json "$SOLANA_CONFIG_DIR"/ +mkdir -p "$SOLANA_CONFIG_CLIENT_DIR" +if [[ ! -r "$SOLANA_CONFIG_CLIENT_DIR"/leader.json ]]; then + ( + set -x + $rsync -vPz "$rsync_leader_url"/config/leader.json "$SOLANA_CONFIG_CLIENT_DIR"/ + ) fi -client_json="$SOLANA_CONFIG_DIR"/client.json +client_json="$SOLANA_CONFIG_CLIENT_DIR"/client.json if [[ ! -r $client_json ]]; then $solana_mint <<<0 > "$client_json" fi @@ -36,4 +44,4 @@ fi set -x # shellcheck disable=SC2086 # $solana_wallet should not be quoted exec $solana_wallet \ - -l "$SOLANA_CONFIG_DIR"/leader.json -m "$client_json" "$@" + -l "$SOLANA_CONFIG_CLIENT_DIR"/leader.json -m "$client_json" "$@"