Merge branch 'tor-github/pr/1901'
[tor.git] / contrib / client-tools / torify
blobac4c9b5c7f4320514ded45e8a7ff87e8b2aeda5e
1 #! /bin/sh
3 # This script used to call (the now deprecated) tsocks as a fallback in case
4 # torsocks wasn't installed.
5 # Now, it's just a backwards compatible shim around torsocks with reasonable
6 # behavior if -v/--verbose or -h/--help arguments are passed.
8 # Copyright (c) 2004, 2006, 2009 Peter Palfrader
9 # Modified by Jacob Appelbaum <jacob@appelbaum.net> April 16th 2006
10 # Stripped of all the tsocks cruft by ugh on February 22nd 2012
11 # May be distributed under the same terms as Tor itself
14 compat() {
15 echo "torify is now just a wrapper around torsocks(1) for backwards compatibility."
18 usage() {
19 compat
20 echo "Usage: $0 [-hv] <command> [<options>...]"
23 case $# in 0)
24 usage >&2
25 exit 1
26 esac
28 case $# in 1)
29 case $1 in -h|--help)
30 usage
31 exit 0
32 esac
33 esac
35 case $1 in -v|--verbose)
36 compat >&2
37 shift
38 esac
40 # taken from Debian's Developer's Reference, 6.4
41 pathfind() {
42 OLDIFS="$IFS"
43 IFS=:
44 for p in $PATH; do
45 if [ -x "$p/$*" ]; then
46 IFS="$OLDIFS"
47 return 0
49 done
50 IFS="$OLDIFS"
51 return 1
54 if pathfind torsocks; then
55 exec torsocks "$@"
56 echo "$0: Failed to exec torsocks $*" >&2
57 exit 1
58 else
59 echo "$0: torsocks not found in your PATH. Perhaps it isn't installed? (tsocks is no longer supported, for security reasons.)" >&2