diff --git a/first-network/byfn.sh b/first-network/byfn.sh index 535bbf94c5..e335fd000c 100755 --- a/first-network/byfn.sh +++ b/first-network/byfn.sh @@ -1,5 +1,6 @@ #!/bin/bash -# + +# # Copyright IBM Corp All Rights Reserved # # SPDX-License-Identifier: Apache-2.0 @@ -34,7 +35,7 @@ export FABRIC_CFG_PATH=${PWD} # Print the usage message function printHelp () { echo "Usage: " - echo " byfn.sh -m up|down|restart|generate [-c ] [-t ] [-d ] [-f ]" + echo " byfn.sh -m up|down|restart|generate [-c ] [-t ] [-d ] [-f ] [-s ]" echo " byfn.sh -h|--help (print this message)" echo " -m - one of 'up', 'down', 'restart' or 'generate'" echo " - 'up' - bring up the network with docker-compose up" @@ -45,13 +46,14 @@ function printHelp () { echo " -t - CLI timeout duration in microseconds (defaults to 10000)" echo " -d - delay duration in seconds (defaults to 3)" echo " -f - specify which docker-compose file use (defaults to docker-compose-cli.yaml)" + echo " -s - the database backend to use: goleveldb (default) or couchdb" echo echo "Typically, one would first generate the required certificates and " echo "genesis block, then bring up the network. e.g.:" echo - echo " byfn.sh -m generate -c " - echo " byfn.sh -m up -c " - echo " byfn.sh -m down -c " + echo " byfn.sh -m generate -c mychannel" + echo " byfn.sh -m up -c mychannel -s couchdb" + echo " byfn.sh -m down -c mychannel" echo echo "Taking all defaults:" echo " byfn.sh -m generate" @@ -109,6 +111,11 @@ function networkUp () { generateChannelArtifacts fi CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=$CLI_TIMEOUT DELAY=$CLI_DELAY docker-compose -f $COMPOSE_FILE up -d 2>&1 + if [ "${IF_COUCHDB}" == "couchdb" ]; then + CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH up -d 2>&1 + else + CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE up -d 2>&1 + fi if [ $? -ne 0 ]; then echo "ERROR !!!! Unable to start network" docker logs -f cli @@ -120,6 +127,7 @@ function networkUp () { # Tear down running network function networkDown () { docker-compose -f $COMPOSE_FILE down + docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH down # Don't remove containers, images, etc if restarting if [ "$MODE" != "restart" ]; then #Cleanup the chaincode containers @@ -303,9 +311,11 @@ CLI_DELAY=3 CHANNEL_NAME="mychannel" # use this as the default docker-compose yaml definition COMPOSE_FILE=docker-compose-cli.yaml +# +COMPOSE_FILE_COUCH=docker-compose-couch.yaml # Parse commandline args -while getopts "h?m:c:t:d:f:" opt; do +while getopts "h?m:c:t:d:f:s:" opt; do case "$opt" in h|\?) printHelp @@ -321,6 +331,8 @@ while getopts "h?m:c:t:d:f:" opt; do ;; f) COMPOSE_FILE=$OPTARG ;; + s) IF_COUCHDB=$OPTARG + ;; esac done @@ -339,8 +351,13 @@ else fi # Announce what was requested -echo "${EXPMODE} with channel '${CHANNEL_NAME}' and CLI timeout of '${CLI_TIMEOUT}'" + if [ "${IF_COUCHDB}" == "couchdb" ]; then + echo + echo "${EXPMODE} with channel '${CHANNEL_NAME}' and CLI timeout of '${CLI_TIMEOUT}' using database '${IF_COUCHDB}'" + else + echo "${EXPMODE} with channel '${CHANNEL_NAME}' and CLI timeout of '${CLI_TIMEOUT}'" + fi # ask for confirmation to proceed askProceed @@ -349,7 +366,7 @@ if [ "${MODE}" == "up" ]; then networkUp elif [ "${MODE}" == "down" ]; then ## Clear the network networkDown -elif [ "${MODE}" == "generate" ]; then ## Generate Artifacts + elif [ "${MODE}" == "generate" ]; then ## Generate Artifacts generateCerts replacePrivateKey generateChannelArtifacts