diff options
Diffstat (limited to 'contrib/client-tools/torify')
-rwxr-xr-x | contrib/client-tools/torify | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/contrib/client-tools/torify b/contrib/client-tools/torify new file mode 100755 index 0000000000..54acfed654 --- /dev/null +++ b/contrib/client-tools/torify @@ -0,0 +1,61 @@ +#! /bin/sh + +# This script used to call (the now deprecated) tsocks as a fallback in case +# torsocks wasn't installed. +# Now, it's just a backwards compatible shim around torsocks with reasonable +# behavior if -v/--verbose or -h/--help arguments are passed. +# +# Copyright (c) 2004, 2006, 2009 Peter Palfrader +# Modified by Jacob Appelbaum <jacob@appelbaum.net> April 16th 2006 +# Stripped of all the tsocks cruft by ugh on February 22nd 2012 +# May be distributed under the same terms as Tor itself + + +compat() { + echo "torify is now just a wrapper around torsocks(1) for backwards compatibility." +} + +usage() { + compat + echo "Usage: $0 [-hv] <command> [<options>...]" +} + +case $# in 0) + usage >&2 + exit 1 +esac + +case $# in 1) + case $1 in -h|--help) + usage + exit 0 + esac +esac + +case $1 in -v|--verbose) + compat >&2 + shift +esac + +# taken from Debian's Developer's Reference, 6.4 +pathfind() { + OLDIFS="$IFS" + IFS=: + for p in $PATH; do + if [ -x "$p/$*" ]; then + IFS="$OLDIFS" + return 0 + fi + done + IFS="$OLDIFS" + return 1 +} + +if pathfind torsocks; then + exec torsocks "$@" + echo "$0: Failed to exec torsocks $@" >&2 + exit 1 +else + echo "$0: torsocks not found in your PATH. Perhaps it isn't installed? (tsocks is no longer supported, for security reasons.)" >&2 +fi + |