12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/bin/sh
- #
- # Usage:
- # tools/hsaddress.sh [hs_node]
- # Output: for each HS outputs its onion address. If the argument node is
- # specified, it only shows the onion address of that node.
- # Examples: tools/hsaddress.sh
- # tools/hsaddress.sh 025h
- 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
- # 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_DATA_DIR/nodes"
- TARGET=hidden_service/hostname
- usage() {
- echo "Usage: $NAME [hs_node]"
- exit 1
- }
- show_address() {
- cat "$1"
- }
- [ -d "$DEST" ] || { echo "$NAME: no nodes available"; exit 1; }
- if [ $# -eq 0 ];
- then
- # support hOLD
- for dir in "$DEST"/*h*;
- do
- FILE="${dir}/$TARGET"
- [ -e "$FILE" ] || continue
- echo "Node $(basename "$dir"): " | tr -d "\n"
- show_address "$FILE"
- done
- elif [ $# -eq 1 ];
- then
- [ -d "$DEST/$1" ] || { echo "$NAME: $1 not found"; exit 1; }
- # we don't check the name of the HS directory, because tags vary
- FILE="$DEST/$1/$TARGET"
- [ -e "$FILE" ] || { echo "$NAME: $FILE not found"; exit 1; }
- show_address "$FILE"
- else
- usage
- fi
|