[tor-commits] [chutney/master] Actually use CHUTNEY_TOR as a binary path, rather than just searching PATH

nickm at torproject.org nickm at torproject.org
Wed Aug 8 13:10:10 UTC 2018


commit a5eae0b6d94d1e5bf3cf17ed721a9334bc3e85fb
Author: teor <teor at torproject.org>
Date:   Wed Aug 8 12:17:55 2018 +1000

    Actually use CHUTNEY_TOR as a binary path, rather than just searching PATH
    
    Also:
    * Use CHUTNEY_TOR as a binary name, rather than just using the standard name
    * Do the same for CHUTNEY_TOR_GENCERT
    * Tell the user how chutney is trying to find tor binaries
    * Document chutney's binary search order better
    
    Fixes 27068.
---
 README                | 18 ++++++++++++------
 tools/test-network.sh | 26 +++++++++++++++++++++-----
 2 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/README b/README
index d845e6b..23c6ed2 100644
--- a/README
+++ b/README
@@ -9,12 +9,18 @@ It is supposed to be a good tool for:
 
 Right now it only sorta does these things.
 
-You will need, at the moment:
-  - Tor installed somewhere in your path, or
-  - The location of the 'tor' and 'tor-gencert' binaries specified through the
-    environment variables CHUTNEY_TOR and CHUTNEY_TOR_GENCERT, respectively, or
-  - To run chutney's tools/test-network.sh from a tor build directory, and
-  - Python 2.7 or later (Python 3 support is an ongoing work)
+You will need:
+  - Python 2.7 or later (Python 3 support is an ongoing work), and
+  - Tor binaries.
+
+Chutney checks for Tor binaries in this order:
+  - If you run chutney's tools/test-network.sh from a tor build directory,
+    (or set the environment variable $TOR_DIR to a tor build directory,)
+    chutney will automatically detect the tor binaries, or
+  - If you put the location of the 'tor' and 'tor-gencert' binaries in the
+    environment variables $CHUTNEY_TOR and $CHUTNEY_TOR_GENCERT, respectively,
+    chutney will use those binaries, or
+  - You will need tor and tor-gencert installed somewhere in your path.
 
 Stuff to try:
 
diff --git a/tools/test-network.sh b/tools/test-network.sh
index 97a7374..b4448e2 100755
--- a/tools/test-network.sh
+++ b/tools/test-network.sh
@@ -185,7 +185,8 @@ fi
 # if it's not set:
 #  - set it to $BUILDDIR, or
 #  - if $PWD looks like a tor build directory, set it to $PWD, or
-#  - unset $TOR_DIR, and let chutney fall back to finding tor binaries in $PATH
+#  - unset $TOR_DIR, and let chutney fall back to finding tor binaries in
+#    $CHUTNEY_TOR and $CHUTNEY_TOR_GENCERT, or $PATH
 if [ ! -d "$TOR_DIR" ]; then
     if [ -d "$BUILDDIR/src/or" -a -d "$BUILDDIR/src/tools" ]; then
         # Choose the build directory
@@ -204,7 +205,7 @@ if [ ! -d "$TOR_DIR" ]; then
         $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 \$CHUTNEY_TOR and \$CHUTNEY_TOR_GENCERT as tor binary paths, or search \$PATH for tor binary names"
         unset TOR_DIR
     fi
 fi
@@ -264,14 +265,29 @@ fi
 # using $CHUTNEY_TOR and $CHUTNEY_TOR_GENCERT, and then falls back to
 # looking for tor and tor-gencert in $PATH
 if [ -d "$TOR_DIR" ]; then
+    $ECHO "$myname: Setting \$CHUTNEY_TOR and \$CHUTNEY_TOR_GENCERT based on TOR_DIR: '$TOR_DIR'"
     # TOR_DIR is absolute, so these are absolute paths
     export CHUTNEY_TOR="${TOR_DIR}/src/or/${tor_name}"
     export CHUTNEY_TOR_GENCERT="${TOR_DIR}/src/tools/${tor_gencert_name}"
 else
-    # these are binary names, they will be searched for in $PATH
-    export CHUTNEY_TOR="${tor_name}"
-    export CHUTNEY_TOR_GENCERT="${tor_gencert_name}"
+    if [ -x "$CHUTNEY_TOR" ]; then
+        $ECHO "$myname: Assuming \$CHUTNEY_TOR is a path to a binary"
+    elif [ ! -z "$CHUTNEY_TOR" ]; then
+        $ECHO "$myname: Assuming \$CHUTNEY_TOR is a binary name in PATH"
+    else
+        $ECHO "$myname: Setting \$CHUTNEY_TOR to the standard binary name in PATH"
+        export CHUTNEY_TOR="${tor_name}"
+    fi
+    if [ -x "$CHUTNEY_TOR_GENCERT" ]; then
+        $ECHO "$myname: Assuming \$CHUTNEY_TOR_GENCERT is a path to a binary"
+    elif [ ! -z "$CHUTNEY_TOR_GENCERT" ]; then
+        $ECHO "$myname: Assuming \$CHUTNEY_TOR_GENCERT is a binary name in PATH"
+    else
+        $ECHO "$myname: Setting \$CHUTNEY_TOR_GENCERT to the standard binary name in PATH"
+        export CHUTNEY_TOR_GENCERT="${tor_gencert_name}"
+    fi
 fi
+$ECHO "$myname: Using \$CHUTNEY_TOR: '$CHUTNEY_TOR' and \$CHUTNEY_TOR_GENCERT: '$CHUTNEY_TOR_GENCERT'"
 
 # Set the variables for the chutney network flavour
 export NETWORK_FLAVOUR=${NETWORK_FLAVOUR:-"bridges+hs"}





More information about the tor-commits mailing list