Browse Source

Handle CHUTNEY_DATA_DIR correctly, even if it's relative

And handle it consistently across chutney and scripts.

Closes 21568.
teor 7 years ago
parent
commit
bc7a8eab20
5 changed files with 54 additions and 11 deletions
  1. 3 1
      README
  2. 12 1
      tools/bootstrap-network.sh
  3. 11 1
      tools/hsaddress.sh
  4. 17 7
      tools/test-network.sh
  5. 11 1
      tools/warnings.sh

+ 3 - 1
README

@@ -55,9 +55,11 @@ Warning Options:
                      CHUTNEY_WARNINGS_SUMMARY=false
   --no-warnings      CHUTNEY_WARNINGS_SKIP=true
 
-Other Options:
+Expert Options:
   --coverage         USE_COVERAGE_BINARY=true
+  --net-dir          CHUTNEY_DATA_DIR
   --dry-run          NETWORK_DRY_RUN=true
+  (These are advanced options: in the past, they have had long-standing bugs.)
 
 Standard Actions:
   ./chutney configure networks/basic

+ 12 - 1
tools/bootstrap-network.sh

@@ -13,6 +13,7 @@
 #                     (default: 'basic')
 #
 
+# Get a working chutney path
 if [ ! -d "$CHUTNEY_PATH" -o ! -x "$CHUTNEY_PATH/chutney" ]; then
     # looks like a broken path: use the path to this tool instead
     TOOLS_PATH=`dirname "$0"`
@@ -23,6 +24,16 @@ if [ -d "$PWD/$CHUTNEY_PATH" -a -x "$PWD/$CHUTNEY_PATH/chutney" ]; then
     export CHUTNEY_PATH="$PWD/$CHUTNEY_PATH"
 fi
 
+# Get a working net path
+if [ ! -d "$CHUTNEY_DATA_DIR" ]; then
+    # looks like a broken path: use the chutney path as a base
+    export CHUTNEY_DATA_DIR="$CHUTNEY_PATH/net"
+fi
+if [ -d "$PWD/$CHUTNEY_DATA_DIR" ]; then
+    # looks like a relative path: make chutney path absolute
+    export CHUTNEY_DATA_DIR="$PWD/$CHUTNEY_DATA_DIR"
+fi
+
 VOTING_OFFSET=6
 CHUTNEY="$CHUTNEY_PATH/chutney"
 myname=$(basename "$0")
@@ -48,7 +59,7 @@ echo "$myname: bootstrapping network: $flavour"
 # files like this.
 offset=$(expr \( $(date +%s) + $VOTING_OFFSET \) % 300)
 CONFOPT="TestingV3AuthVotingStartOffset"
-for file in "$CHUTNEY_PATH"/net/nodes/*a/torrc ; do
+for file in "$CHUTNEY_DATA_DIR"/nodes/*a/torrc ; do
     sed -i.bak -e "s/^${CONFOPT}.*$/${CONFOPT} $offset/1" $file
 done
 

+ 11 - 1
tools/hsaddress.sh

@@ -17,8 +17,18 @@ if [ -d "$PWD/$CHUTNEY_PATH" -a -x "$PWD/$CHUTNEY_PATH/chutney" ]; then
     export CHUTNEY_PATH="$PWD/$CHUTNEY_PATH"
 fi
 
+# Get a working net path
+if [ ! -d "$CHUTNEY_DATA_DIR" ]; then
+    # looks like a broken path: use the chutney path as a base
+    export CHUTNEY_DATA_DIR="$CHUTNEY_PATH/net"
+fi
+if [ -d "$PWD/$CHUTNEY_DATA_DIR" ]; then
+    # looks like a relative path: make chutney path absolute
+    export CHUTNEY_DATA_DIR="$PWD/$CHUTNEY_DATA_DIR"
+fi
+
 NAME=$(basename "$0")
-DEST="$CHUTNEY_PATH/net/nodes"
+DEST="$CHUTNEY_DATA_DIR/nodes"
 TARGET=hidden_service/hostname
 
 function usage() {

+ 17 - 7
tools/test-network.sh

@@ -91,13 +91,7 @@ do
       export CHUTNEY_LISTEN_ADDRESS_V6="$2"
       shift
       ;;
-    --coverage)
-      export USE_COVERAGE_BINARY=true
-      ;;
-    --dry-run)
-      # process arguments, but don't call any other scripts
-      export NETWORK_DRY_RUN=true
-      ;;
+    # Warning Options
     # we summarise unexpected warnings by default
     # this shows all warnings per-node
     --all-warnings)
@@ -108,6 +102,22 @@ do
     --no-warnings)
       export CHUTNEY_WARNINGS_SKIP=true
       ;;
+    # Expert options
+    # Code Coverage Binary
+    --coverage)
+      export USE_COVERAGE_BINARY=true
+      ;;
+    # Do Nothing (but process arguments and set environmental variables)
+    --dry-run)
+      # process arguments, but don't call any other scripts
+      export NETWORK_DRY_RUN=true
+      ;;
+    # The net directory, usually chutney/net
+    --net-dir)
+      export CHUTNEY_DATA_DIR="$2"
+      shift
+      ;;
+    # Oops
     *)
       echo "$myname: Sorry, I don't know what to do with '$1'."
       echo "$UPDATE_YOUR_CHUTNEY"

+ 11 - 1
tools/warnings.sh

@@ -21,6 +21,16 @@ if [ -d "$PWD/$CHUTNEY_PATH" -a -x "$PWD/$CHUTNEY_PATH/chutney" ]; then
     export CHUTNEY_PATH="$PWD/$CHUTNEY_PATH"
 fi
 
+# Get a working net path
+if [ ! -d "$CHUTNEY_DATA_DIR" ]; then
+    # looks like a broken path: use the chutney path as a base
+    export CHUTNEY_DATA_DIR="$CHUTNEY_PATH/net"
+fi
+if [ -d "$PWD/$CHUTNEY_DATA_DIR" ]; then
+    # looks like a relative path: make chutney path absolute
+    export CHUTNEY_DATA_DIR="$PWD/$CHUTNEY_DATA_DIR"
+fi
+
 function show_warnings() {
     # Work out the file and filter settings
     if [ "$CHUTNEY_WARNINGS_SUMMARY" = true ]; then
@@ -75,7 +85,7 @@ if [ -t 1 ]; then
 fi
 CHUTNEY="$CHUTNEY_PATH/chutney"
 NAME=$(basename "$0")
-DEST="$CHUTNEY_PATH/net/nodes"
+DEST="$CHUTNEY_DATA_DIR/nodes"
 LOG_FILE=info.log
 # ignore warnings we expect to get every time chutney runs
 CHUTNEY_WARNINGS_IGNORE_EXPECTED=${CHUTNEY_WARNINGS_IGNORE_EXPECTED:-0}