Browse Source

Add a quiet mode to test-network.sh and warnings.sh

This prepares for the tor changes in 21570.

Closes 21571.
teor 7 years ago
parent
commit
52f5355ca9
3 changed files with 28 additions and 23 deletions
  1. 1 0
      README
  2. 25 21
      tools/test-network.sh
  3. 2 2
      tools/warnings.sh

+ 1 - 0
README

@@ -59,6 +59,7 @@ Expert Options:
   --coverage         USE_COVERAGE_BINARY=true
   --net-dir          CHUTNEY_DATA_DIR
   --dry-run          NETWORK_DRY_RUN=true
+  --quiet            ECHO=true
   (These are advanced options: in the past, they have had long-standing bugs.)
 
 Standard Actions:

+ 25 - 21
tools/test-network.sh

@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-ECHO_N="/bin/echo -n"
+export ECHO=${ECHO:-"echo"}
 
 # Output is prefixed with the name of the script
 myname=$(basename "$0")
@@ -117,10 +117,14 @@ do
       export CHUTNEY_DATA_DIR="$2"
       shift
       ;;
+    # Try not to say anything (applies only to this script)
+    --quiet)
+      export ECHO=true
+      ;;
     # Oops
     *)
-      echo "$myname: Sorry, I don't know what to do with '$1'."
-      echo "$UPDATE_YOUR_CHUTNEY"
+      $ECHO "$myname: Sorry, I don't know what to do with '$1'."
+      $ECHO "$UPDATE_YOUR_CHUTNEY"
       # continue processing arguments during a dry run
       if [ "$NETWORK_DRY_RUN" != true ]; then
           exit 2
@@ -140,21 +144,21 @@ if [ ! -d "$TOR_DIR" ]; then
     if [ -d "$BUILDDIR/src/or" -a -d "$BUILDDIR/src/tools" ]; then
         # Choose the build directory
         # But only if it looks like one
-        echo "$myname: \$TOR_DIR not set, trying \$BUILDDIR"
+        $ECHO "$myname: \$TOR_DIR not set, trying \$BUILDDIR"
         export TOR_DIR="$BUILDDIR"
     elif [ -d "$PWD/src/or" -a -d "$PWD/src/tools" ]; then
         # Guess the tor directory is the current directory
         # But only if it looks like one
-        echo "$myname: \$TOR_DIR not set, trying \$PWD"
+        $ECHO "$myname: \$TOR_DIR not set, trying \$PWD"
         export TOR_DIR="$PWD"
     elif [ -d "$PWD/../tor" -a -d "$PWD/../tor/src/or" -a \
 	   -d "$PWD/../tor/src/tools" ]; then
         # Guess the tor directory is next to the current directory
         # But only if it looks like one
-        echo "$myname: \$TOR_DIR not set, trying \$PWD/../tor"
+        $ECHO "$myname: \$TOR_DIR not set, trying \$PWD/../tor"
         export TOR_DIR="$PWD/../tor"
     else
-        echo "$myname: no \$TOR_DIR, chutney will use \$PATH for tor binaries"
+        $ECHO "$myname: no \$TOR_DIR, chutney will use \$PATH for tor binaries"
         unset TOR_DIR
     fi
 fi
@@ -173,25 +177,25 @@ fi
 if [ ! -d "$CHUTNEY_PATH" -o ! -x "$CHUTNEY_PATH/chutney" -o \
      ! -f "$CHUTNEY_PATH/chutney" ]; then
     if [ -x "$PWD/chutney" -a -f "$PWD/chutney" ]; then
-        echo "$myname: \$CHUTNEY_PATH not valid, trying \$PWD"
+        $ECHO "$myname: \$CHUTNEY_PATH not valid, trying \$PWD"
         export CHUTNEY_PATH="$PWD"
     elif [ -d "`dirname \"$0\"`/.." -a \
 	   -x "`dirname \"$0\"`/../chutney" -a \
 	   -f "`dirname \"$0\"`/../chutney" ]; then
-        echo "$myname: \$CHUTNEY_PATH not valid, using this script's location"
+        $ECHO "$myname: \$CHUTNEY_PATH not valid, using this script's location"
         export CHUTNEY_PATH="`dirname \"$0\"`/.."
     elif [ -d "$TOR_DIR" -a -d "$TOR_DIR/../chutney" -a \
            -x "$TOR_DIR/../chutney/chutney" -a \
 	   -f "$TOR_DIR/../chutney/chutney" ]; then
-        echo "$myname: \$CHUTNEY_PATH not valid, trying \$TOR_DIR/../chutney"
+        $ECHO "$myname: \$CHUTNEY_PATH not valid, trying \$TOR_DIR/../chutney"
         export CHUTNEY_PATH="$TOR_DIR/../chutney"
     else
         # TODO: work out how to package and install chutney,
         # so users can find it in $PATH
-        echo "$myname: missing 'chutney' in \$CHUTNEY_PATH ($CHUTNEY_PATH)"
-        echo "$myname: Get chutney: git clone https://git.torproject.org/\
+        $ECHO "$myname: missing 'chutney' in \$CHUTNEY_PATH ($CHUTNEY_PATH)"
+        $ECHO "$myname: Get chutney: git clone https://git.torproject.org/\
 chutney.git"
-        echo "$myname: Set \$CHUTNEY_PATH to a non-standard location: export \
+        $ECHO "$myname: Set \$CHUTNEY_PATH to a non-standard location: export \
 CHUTNEY_PATH=\`pwd\`/chutney"
         unset CHUTNEY_PATH
         exit 1
@@ -252,11 +256,11 @@ else
 fi
 
 if [ "$CHUTNEY_START_TIME" -ge 0 ]; then
-  echo "Waiting ${CHUTNEY_START_TIME} seconds for a consensus containing relays to be generated..."
+  $ECHO "Waiting ${CHUTNEY_START_TIME} seconds for a consensus containing relays to be generated..."
   sleep "$CHUTNEY_START_TIME"
 else
-  echo "Chutney network launched and running. To stop the network, use:"
-  echo "$CHUTNEY stop $CHUTNEY_NETWORK"
+  $ECHO "Chutney network launched and running. To stop the network, use:"
+  $ECHO "$CHUTNEY stop $CHUTNEY_NETWORK"
   "$WARNINGS"
   exit 0
 fi
@@ -266,15 +270,15 @@ if [ "$CHUTNEY_BOOTSTRAP_TIME" -ge 0 ]; then
   "$CHUTNEY" verify "$CHUTNEY_NETWORK"
   VERIFY_EXIT_STATUS="$?"
 else
-  echo "Chutney network ready and running. To stop the network, use:"
-  echo "$CHUTNEY" stop "$CHUTNEY_NETWORK"
+  $ECHO "Chutney network ready and running. To stop the network, use:"
+  $ECHO "$CHUTNEY" stop "$CHUTNEY_NETWORK"
   "$WARNINGS"
   exit 0
 fi
 
 if [ "$CHUTNEY_STOP_TIME" -ge 0 ]; then
   if [ "$CHUTNEY_STOP_TIME" -gt 0 ]; then
-    echo "Waiting ${CHUTNEY_STOP_TIME} seconds before stopping the network..."
+    $ECHO "Waiting ${CHUTNEY_STOP_TIME} seconds before stopping the network..."
   fi
   sleep "$CHUTNEY_STOP_TIME"
   # work around a bug/feature in make -j2 (or more)
@@ -283,8 +287,8 @@ if [ "$CHUTNEY_STOP_TIME" -ge 0 ]; then
   "$WARNINGS"
   exit "$VERIFY_EXIT_STATUS"
 else
-  echo "Chutney network verified and running. To stop the network, use:"
-  echo "$CHUTNEY stop $CHUTNEY_NETWORK"
+  $ECHO "Chutney network verified and running. To stop the network, use:"
+  $ECHO "$CHUTNEY stop $CHUTNEY_NETWORK"
   "$WARNINGS"
   exit 0
 fi

+ 2 - 2
tools/warnings.sh

@@ -50,8 +50,6 @@ function show_warnings() {
     if [ `$CAT $IGNORE_FILE $FILE | $SED_E "$FILTER" | wc -c` -eq 0 -a \
         "$CHUTNEY_WARNINGS_SUMMARY" = true ]; then
         ECHO=true
-    else
-        ECHO=echo
     fi
     # Give context to the warnings we're about to display
     if [ "$CHUTNEY_WARNINGS_SUMMARY" = true ]; then
@@ -96,6 +94,8 @@ CHUTNEY_WARNINGS_SUMMARY=${CHUTNEY_WARNINGS_SUMMARY:-0}
 SED_E='sed -n -E'
 # Label errs as "Warning:", they're infrequent enough it doesn't matter
 FILTER='s/^.*\[(warn|err)\]//p'
+# use the --quiet setting from test-network.sh, if available
+ECHO=${ECHO:-"echo"}
 
 [ -d "$DEST" ] || { echo "$NAME: no logs available"; exit 1; }
 if [ $# -eq 0 ];