decred.org/dcrdex@v1.0.5/dex/testing/walletpair/walletpair.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  export SHELL=$(which bash)
     4  SESSION="walletpair"
     5  
     6  
     7  BW_ARGS=${@}
     8  SIMNET=""
     9  TESTNET=""
    10  while [ "${1:-}" != "" ]; do
    11    case "$1" in
    12      --simnet)
    13        SIMNET="1"
    14        echo "Using simnet"
    15        ;;
    16      --testnet)
    17        TESTNET="1"
    18        echo "Using testnet"
    19        ;;
    20    esac
    21    shift
    22  done
    23  
    24  if [ "$SIMNET" ] ; then
    25    PAIR_ROOT=~/dextest/simnet-walletpair
    26    CLIENT_1_ADDR="127.0.0.6:5760"
    27    CLIENT_1_RPC_ADDR="127.0.0.6:5761"
    28    CLIENT_2_ADDR="127.0.0.7:5762"
    29    CLIENT_2_RPC_ADDR="127.0.0.7:5763"
    30  else
    31    PAIR_ROOT=~/dextest/walletpair
    32    CLIENT_1_ADDR="127.0.0.4:5760"
    33    CLIENT_1_RPC_ADDR="127.0.0.4:5761"
    34    CLIENT_2_ADDR="127.0.0.5:5762"
    35    CLIENT_2_RPC_ADDR="127.0.0.5:5763"
    36  fi
    37  
    38  CLIENT_1_DIR="${PAIR_ROOT}/dexc1"
    39  CLIENT_2_DIR="${PAIR_ROOT}/dexc2"
    40  HARNESS_DIR="${PAIR_ROOT}/harness-ctl"
    41  BW_DIR=$(realpath ../../../client/cmd/bisonw)
    42  BISONW="${BW_DIR}/bisonw"
    43  
    44  cd "${BW_DIR}"
    45  go build
    46  cd -
    47  
    48  mkdir -p "${HARNESS_DIR}"
    49  mkdir -p "${CLIENT_1_DIR}"
    50  mkdir -p "${CLIENT_2_DIR}"
    51  
    52  CLIENT_1_CONF="${CLIENT_1_DIR}/dexc.conf"
    53  rm -f "${CLIENT_1_CONF}"
    54  CLIENT_1_CTL_KEY="${CLIENT_1_DIR}/ctl.key"
    55  rm -f "$CLIENT_1_CTL_KEY"
    56  CLIENT_1_CTL_CERT="${CLIENT_1_DIR}/ctl.cert"
    57  rm -f "$CLIENT_1_CTL_CERT"
    58  cat > "${CLIENT_1_CONF}" <<EOF
    59  webaddr=${CLIENT_1_ADDR}
    60  rpc=1
    61  rpckey=${CLIENT_1_CTL_KEY}
    62  rpccert=${CLIENT_1_CTL_CERT}
    63  rpcuser=user
    64  rpcpass=pass
    65  rpcaddr=${CLIENT_1_RPC_ADDR}
    66  EOF
    67  
    68  CLIENT_1_CTL_CONF="${CLIENT_1_DIR}/dexcctl.conf"
    69  rm -f "$CLIENT_1_CTL_CONF"
    70  cat > "$CLIENT_1_CTL_CONF" <<EOF
    71  rpcuser=user
    72  rpcpass=pass
    73  rpccert=${CLIENT_1_CTL_CERT}
    74  rpcaddr=${CLIENT_1_RPC_ADDR}
    75  simnet=${SIMNET}
    76  testnet=${TESTNET}
    77  EOF
    78  
    79  CLIENT_2_CONF="${CLIENT_2_DIR}/dexc.conf"
    80  rm -f "$CLIENT_2_CONF"
    81  CLIENT_2_CTL_KEY="${CLIENT_2_DIR}/ctl.key"
    82  rm -f "$CLIENT_2_CTL_KEY"
    83  CLIENT_2_CTL_CERT="${CLIENT_2_DIR}/ctlcert.conf"
    84  rm -f "$CLIENT_2_CTL_CERT"
    85  cat > "$CLIENT_2_CONF" <<EOF
    86  webaddr=${CLIENT_2_ADDR}
    87  rpc=1
    88  rpckey=${CLIENT_2_CTL_KEY}
    89  rpccert=${CLIENT_2_CTL_CERT}
    90  rpcuser=user
    91  rpcpass=pass
    92  rpcaddr=${CLIENT_2_RPC_ADDR}
    93  EOF
    94  
    95  CLIENT_2_CTL_CONF="${CLIENT_2_DIR}/dexcctl.conf"
    96  rm -f "$CLIENT_2_CTL_CONF"
    97  
    98  cat > "$CLIENT_2_CTL_CONF" <<EOF
    99  rpcuser=user
   100  rpcpass=pass
   101  rpccert=${CLIENT_2_CTL_CERT}
   102  rpcaddr=${CLIENT_2_RPC_ADDR}
   103  simnet=${SIMNET}
   104  testnet=${TESTNET}
   105  EOF
   106  
   107  QUIT_FILE="${HARNESS_DIR}/quit"
   108  rm -f "${QUIT_FILE}"
   109  cat > "${QUIT_FILE}" <<EOF
   110  #!/usr/bin/env bash
   111  tmux send-keys -t $SESSION:1 C-c
   112  tmux send-keys -t $SESSION:2 C-c
   113  sleep 1
   114  tmux kill-session
   115  EOF
   116  chmod +x "${QUIT_FILE}"
   117  
   118  echo "xdg-open http://${CLIENT_1_ADDR} > /dev/null 2>&1" > "${HARNESS_DIR}/bisonw1"
   119  chmod +x "${HARNESS_DIR}/bisonw1"
   120  
   121  echo "bwctl -C ${CLIENT_1_CTL_CONF} \$1" > "${HARNESS_DIR}/bw1ctl"
   122  chmod +x "${HARNESS_DIR}/bw1ctl"
   123  
   124  echo "xdg-open http://${CLIENT_2_ADDR} > /dev/null 2>&1" > "${HARNESS_DIR}/bisonw2"
   125  chmod +x "${HARNESS_DIR}/bisonw2"
   126  
   127  echo "bwctl -C ${CLIENT_2_CTL_CONF} \$1" > "${HARNESS_DIR}/bw2ctl"
   128  chmod +x "${HARNESS_DIR}/bw2ctl"
   129  
   130  tmux new-session -d -s $SESSION $SHELL
   131  tmux rename-window -t $SESSION:0 'harness-ctl'
   132  
   133  tmux new-window -t $SESSION:1 -n 'bisonw1' $SHELL
   134  tmux send-keys -t $SESSION:1 "cd ${PAIR_ROOT}/dexc1" C-m
   135  tmux send-keys -t $SESSION:1 "${BISONW} --appdata=${CLIENT_1_DIR} ${BW_ARGS}" C-m
   136  
   137  tmux new-window -t $SESSION:2 -n 'bisonw1' $SHELL
   138  tmux send-keys -t $SESSION:2 "cd ${PAIR_ROOT}/dexc1" C-m
   139  tmux send-keys -t $SESSION:2 "${BISONW} --appdata=${CLIENT_2_DIR} ${BW_ARGS}" C-m
   140  
   141  tmux select-window -t $SESSION:0
   142  sleep 1
   143  tmux send-keys -t $SESSION:0 "cd ${HARNESS_DIR}; tmux wait-for -S walletpair" C-m\; wait-for walletpair
   144  tmux send-keys -t $SESSION:0 "./bisonw1; tmux wait-for -S walletpair" C-m\; wait-for walletpair
   145  tmux send-keys -t $SESSION:0 "./bisonw2" C-m
   146  tmux attach-session -t $SESSION