[tor-commits] [chutney/master] Handle CHUTNEY_DATA_DIR correctly, even if it's relative

teor at torproject.org teor at torproject.org
Mon Feb 27 12:41:06 UTC 2017


commit bc7a8eab200cc38d919e23c48938672de90ecabb
Author: teor <teor2345 at gmail.com>
Date:   Mon Feb 27 23:34:34 2017 +1100

    Handle CHUTNEY_DATA_DIR correctly, even if it's relative
    
    And handle it consistently across chutney and scripts.
    
    Closes 21568.
---
 README                     |  4 +++-
 tools/bootstrap-network.sh | 13 ++++++++++++-
 tools/hsaddress.sh         | 12 +++++++++++-
 tools/test-network.sh      | 24 +++++++++++++++++-------
 tools/warnings.sh          | 12 +++++++++++-
 5 files changed, 54 insertions(+), 11 deletions(-)

diff --git a/README b/README
index f126145..b2ce936 100644
--- a/README
+++ b/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
diff --git a/tools/bootstrap-network.sh b/tools/bootstrap-network.sh
index 496bc95..7fb2eed 100755
--- a/tools/bootstrap-network.sh
+++ b/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
 
diff --git a/tools/hsaddress.sh b/tools/hsaddress.sh
index c5d3a6f..517c6b5 100755
--- a/tools/hsaddress.sh
+++ b/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() {
diff --git a/tools/test-network.sh b/tools/test-network.sh
index 1308c08..6924c20 100755
--- a/tools/test-network.sh
+++ b/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"
diff --git a/tools/warnings.sh b/tools/warnings.sh
index 761375e..02912cb 100755
--- a/tools/warnings.sh
+++ b/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}





More information about the tor-commits mailing list