From c1685c7faa9d8631b54916b75de0c9613ab0e6aa Mon Sep 17 00:00:00 2001 From: Swetha Repakula Date: Mon, 20 May 2019 13:12:16 -0700 Subject: [PATCH] [FAB-15316] Shellcheck improvements - double quote variables to avoid splitting - use heredoc to generate changelog - This commit also adds back changes that were reverted in commit d73c34427503406c53f99b75684271ecae1960d6 and fixes the issue in bootstrap.sh that was introduced in commit c322e835ec66ae35c0ee38731d897dc5293b5975. Change-Id: I2ac5c41f93b8a663d2f0d3edb066c65cc4db4e1c Change-Id: Id7a30329cdd1064ea79f9f5ee5fa882179fc3cda Signed-off-by: Swetha Repakula --- scripts/bootstrap.sh | 72 ++++++++++++++++----------------- scripts/changelog.sh | 9 +++-- scripts/check_trailingspaces.sh | 12 +++--- 3 files changed, 47 insertions(+), 46 deletions(-) diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 8a12f5bf767..d60221b2af1 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -6,13 +6,13 @@ # # if version not passed in, default to latest released version -export VERSION=1.4.1 +VERSION=1.4.1 # if ca version not passed in, default to latest released version -export CA_VERSION=1.4.1 +CA_VERSION=1.4.1 # current version of thirdparty images (couchdb, kafka and zookeeper) released -export THIRDPARTY_IMAGE_VERSION=0.4.15 -export ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')") -export MARCH=$(uname -m) +THIRDPARTY_IMAGE_VERSION=0.4.15 +ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')") +MARCH=$(uname -m) printHelp() { echo "Usage: bootstrap.sh [version [ca_version [thirdparty_version]]] [options]" @@ -35,8 +35,8 @@ dockerFabricPull() { for IMAGES in peer orderer ccenv tools baseos nodeenv javaenv; do echo "==> FABRIC IMAGE: $IMAGES" echo - docker pull hyperledger/fabric-$IMAGES:$FABRIC_TAG - docker tag hyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES + docker pull "hyperledger/fabric-$IMAGES:$FABRIC_TAG" + docker tag "hyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES" done } @@ -45,8 +45,8 @@ dockerThirdPartyImagesPull() { for IMAGES in couchdb kafka zookeeper; do echo "==> THIRDPARTY DOCKER IMAGE: $IMAGES" echo - docker pull hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG - docker tag hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG hyperledger/fabric-$IMAGES + docker pull "hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG" + docker tag "hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG hyperledger/fabric-$IMAGES" done } @@ -54,8 +54,8 @@ dockerCaPull() { local CA_TAG=$1 echo "==> FABRIC CA IMAGE" echo - docker pull hyperledger/fabric-ca:$CA_TAG - docker tag hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca + docker pull "hyperledger/fabric-ca:$CA_TAG" + docker tag "hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca" } samplesInstall() { @@ -82,7 +82,7 @@ samplesInstall() { binaryIncrementalDownload() { local BINARY_FILE=$1 local URL=$2 - curl -f -s -C - ${URL} -o ${BINARY_FILE} || rc=$? + curl -f -s -C - "${URL}" -o "${BINARY_FILE}" || rc=$? # Due to limitations in the current Nexus repo: # curl returns 33 when there's a resume attempt with no more bytes to download # curl returns 2 after finishing a resumed download @@ -94,16 +94,16 @@ binaryIncrementalDownload() { if [ -z "$rc" ] || [ $rc -eq 33 ] || [ $rc -eq 2 ]; then # The checksum validates that RC 33 or 2 are not real failures echo "==> File downloaded. Verifying the md5sum..." - localMd5sum=$(md5sum ${BINARY_FILE} | awk '{print $1}') - remoteMd5sum=$(curl -s ${URL}.md5) + localMd5sum=$(md5sum "${BINARY_FILE}" | awk '{print $1}') + remoteMd5sum=$(curl -s "${URL}".md5) if [ "$localMd5sum" == "$remoteMd5sum" ]; then echo "==> Extracting ${BINARY_FILE}..." - tar xzf ./${BINARY_FILE} --overwrite + tar xzf ./"${BINARY_FILE}" --overwrite echo "==> Done." - rm -f ${BINARY_FILE} ${BINARY_FILE}.md5 + rm -f $"{BINARY_FILE}" "${BINARY_FILE}".md5 else echo "Download failed: the local md5sum is different from the remote md5sum. Please try again." - rm -f ${BINARY_FILE} ${BINARY_FILE}.md5 + rm -f "${BINARY_FILE}" "${BINARY_FILE}".md5 exit 1 fi else @@ -118,17 +118,17 @@ binaryIncrementalDownload() { binaryDownload() { local BINARY_FILE=$1 local URL=$2 - echo "===> Downloading: " ${URL} + echo "===> Downloading: " "${URL}" # Check if a previous failure occurred and the file was partially downloaded - if [ -e ${BINARY_FILE} ]; then + if [ -e "${BINARY_FILE}" ]; then echo "==> Partial binary file found. Resuming download..." - binaryIncrementalDownload ${BINARY_FILE} ${URL} + binaryIncrementalDownload "${BINARY_FILE}" "${URL}" else - curl ${URL} | tar xz || rc=$? - if [ ! -z "$rc" ]; then + curl "${URL}" | tar xz || rc=$? + if [ -n "$rc" ]; then echo "==> There was an error downloading the binary file. Switching to incremental download." echo "==> Downloading file..." - binaryIncrementalDownload ${BINARY_FILE} ${URL} + binaryIncrementalDownload "${BINARY_FILE}" "${URL}" else echo "==> Done." fi @@ -137,7 +137,7 @@ binaryDownload() { binariesInstall() { echo "===> Downloading version ${FABRIC_TAG} platform specific fabric binaries" - binaryDownload ${BINARY_FILE} https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${ARCH}-${VERSION}/${BINARY_FILE} + binaryDownload "${BINARY_FILE}" "https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${ARCH}-${VERSION}/${BINARY_FILE}" if [ $? -eq 22 ]; then echo echo "------> ${FABRIC_TAG} platform specific fabric binary is not available to download <----" @@ -145,7 +145,7 @@ binariesInstall() { fi echo "===> Downloading version ${CA_TAG} platform specific fabric-ca-client binary" - binaryDownload ${CA_BINARY_FILE} https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/${ARCH}-${CA_VERSION}/${CA_BINARY_FILE} + binaryDownload "${CA_BINARY_FILE}" "https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/${ARCH}-${CA_VERSION}/${CA_BINARY_FILE}" if [ $? -eq 22 ]; then echo echo "------> ${CA_TAG} fabric-ca-client binary is not available to download (Available from 1.1.0-rc1) <----" @@ -154,18 +154,18 @@ binariesInstall() { } dockerInstall() { - which docker >& /dev/null + command -v docker >& /dev/null NODOCKER=$? if [ "${NODOCKER}" == 0 ]; then echo "===> Pulling fabric Images" - dockerFabricPull ${FABRIC_TAG} + dockerFabricPull "${FABRIC_TAG}" echo "===> Pulling fabric ca Image" - dockerCaPull ${CA_TAG} + dockerCaPull "${CA_TAG}" echo "===> Pulling thirdparty docker images" - dockerThirdPartyImagesPull ${THIRDPARTY_TAG} + dockerThirdPartyImagesPull "${THIRDPARTY_TAG}" echo echo "===> List out hyperledger docker images" - docker images | grep hyperledger* + docker images | grep hyperledger else echo "=========================================================" echo "Docker not installed, bypassing download of Fabric images" @@ -179,11 +179,11 @@ BINARIES=true # Parse commandline args pull out # version and/or ca-version strings first -if [ ! -z "$1" -a "${1:0:1}" != "-" ]; then +if [ -n "$1" ] && [ "${1:0:1}" != "-" ]; then VERSION=$1;shift - if [ ! -z "$1" -a "${1:0:1}" != "-" ]; then + if [ -n "$1" ] && [ "${1:0:1}" != "-" ]; then CA_VERSION=$1;shift - if [ ! -z "$1" -a "${1:0:1}" != "-" ]; then + if [ -n "$1" ] && [ "${1:0:1}" != "-" ]; then THIRDPARTY_IMAGE_VERSION=$1;shift fi fi @@ -196,9 +196,9 @@ if [[ $VERSION =~ ^1\.[0-1]\.* ]]; then export THIRDPARTY_TAG=${MARCH}-${THIRDPARTY_IMAGE_VERSION} else # starting with 1.2.0, multi-arch images will be default - : ${CA_TAG:="$CA_VERSION"} - : ${FABRIC_TAG:="$VERSION"} - : ${THIRDPARTY_TAG:="$THIRDPARTY_IMAGE_VERSION"} + : "${CA_TAG:="$CA_VERSION"}" + : "${FABRIC_TAG:="$VERSION"}" + : "${THIRDPARTY_TAG:="$THIRDPARTY_IMAGE_VERSION"}" fi BINARY_FILE=hyperledger-fabric-${ARCH}-${VERSION}.tar.gz diff --git a/scripts/changelog.sh b/scripts/changelog.sh index d3aeded43a9..b80b311f188 100755 --- a/scripts/changelog.sh +++ b/scripts/changelog.sh @@ -5,10 +5,11 @@ # SPDX-License-Identifier: Apache-2.0 # +cat > CHANGELOG.new << EOF +## "${2}" -echo "## $2\n$(date)" >> CHANGELOG.new -echo "" >> CHANGELOG.new -git log $1..HEAD --oneline | grep -v Merge | sed -e "s/\[\(FAB-[0-9]*\)\]/\[\1\](https:\/\/jira.hyperledger.org\/browse\/\1\)/" -e "s/ \(FAB-[0-9]*\)/ \[\1\](https:\/\/jira.hyperledger.org\/browse\/\1\)/" -e "s/\([0-9|a-z]*\)/* \[\1\](https:\/\/github.com\/hyperledger\/fabric\/commit\/\1)/" >> CHANGELOG.new -echo "" >> CHANGELOG.new +$(git log "$1..HEAD" --oneline | grep -v Merge | sed -e "s/\[\(FAB-[0-9]*\)\]/\[\1\](https:\/\/jira.hyperledger.org\/browse\/\1\)/" -e "s/ \(FAB-[0-9]*\)/ \[\1\](https:\/\/jira.hyperledger.org\/browse\/\1\)/" -e "s/\([0-9|a-z]*\)/* \[\1\](https:\/\/github.com\/hyperledger\/fabric\/commit\/\1)/") + +EOF cat CHANGELOG.md >> CHANGELOG.new mv -f CHANGELOG.new CHANGELOG.md diff --git a/scripts/check_trailingspaces.sh b/scripts/check_trailingspaces.sh index 60a03ccb092..3e7627b4ae7 100755 --- a/scripts/check_trailingspaces.sh +++ b/scripts/check_trailingspaces.sh @@ -2,20 +2,20 @@ # Copyright Hitachi, Ltd. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -COMMIT_FILES=`git diff --name-only --diff-filter=ACMRTUXB HEAD | grep -Ev '(^|/)vendor/'` +COMMIT_FILES=$(git diff --name-only --diff-filter=ACMRTUXB HEAD | grep -Ev '(^|/)vendor/') echo "Checking trailing spaces ..." -for filename in `echo $COMMIT_FILES`; do - if [[ `file $filename` == *"ASCII text"* ]]; then - if [ ! -z "`egrep -l " +$" $filename`" ]; then +for filename in $COMMIT_FILES; do + if [[ $(file "$filename") == *"ASCII text"* ]]; then + if grep -El " +$" "$filename"; then FOUND_TRAILING='yes' echo "Error: Trailing spaces found in file:$filename, lines:" - egrep -n " +$" $filename + grep -En " +$" "$filename" fi fi done -if [ ! -z ${FOUND_TRAILING+x} ]; then +if [[ -n ${FOUND_TRAILING+x} ]]; then echo "Please omit trailing spaces and make again." exit 1 fi