#!/bin/sh # # 1. potentially stop running network # 2. bootstrap a network from scratch as quickly as possible # 3. tail -F all the tor log files # # NOTE: leaves debris around by renaming directory net/nodes # and creating a new net/nodes # # Usage: # tools/bootstrap-network.sh [network] # network: a network configuration file # # Get a working chutney path if [ ! -d "$CHUTNEY_PATH" ] || [ ! -x "$CHUTNEY_PATH/chutney" ]; then # looks like a broken path: use the path to this tool instead TOOLS_PATH=$(dirname "$0") CHUTNEY_PATH=$(dirname "$TOOLS_PATH") export CHUTNEY_PATH fi if [ -d "$PWD/$CHUTNEY_PATH" ] && [ -x "$PWD/$CHUTNEY_PATH/chutney" ]; then # looks like a relative path: make chutney path absolute export CHUTNEY_PATH="$PWD/$CHUTNEY_PATH" fi CHUTNEY="$CHUTNEY_PATH/chutney" myname=$(basename "$0") if [ -z "$1" ]; then echo "$myname: the network wasn't provided" exit 1 fi [ -d "$CHUTNEY_PATH" ] || \ { echo "$myname: missing chutney directory: $CHUTNEY_PATH"; exit 1; } [ -x "$CHUTNEY" ] || \ { echo "$myname: missing chutney: $CHUTNEY"; exit 1; } export CHUTNEY_NETWORK="$1" [ -e "$CHUTNEY_NETWORK" ] || \ { echo "$myname: missing network file: $CHUTNEY_NETWORK"; exit 1; } "$CHUTNEY" stop "$CHUTNEY_NETWORK" if ! "$CHUTNEY" supported "$CHUTNEY_NETWORK"; then echo "%myname: network not supported." exit 77 fi echo "$myname: bootstrapping network: $CHUTNEY_NETWORK" "$CHUTNEY" configure "$CHUTNEY_NETWORK" "$CHUTNEY" start "$CHUTNEY_NETWORK" sleep 3 if ! "$CHUTNEY" status "$CHUTNEY_NETWORK"; then # Try to work out why the start or status command is failing CHUTNEY_DEBUG=1 "$CHUTNEY" start "$CHUTNEY_NETWORK" # Wait a little longer, just in case sleep 6 CHUTNEY_DEBUG=1 "$CHUTNEY" status "$CHUTNEY_NETWORK" fi