Hi Angel, I was wondering if the WGET variable should always contain the absolute path to the executable. That way we do nopt rely on the $PATH variable to detect wget. My suggestion would be to have the line replaced as: WGET=/usr/bin/wget
So that the script always uses the wget executable and not any other scripts called wget in $PATH On Wed, Aug 6, 2014 at 5:03 AM, Ángel González <[email protected]> wrote: > --- > ChangeLog | 4 +++ > contrib/tsocked-wget | 91 > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 95 insertions(+) > create mode 100755 contrib/tsocked-wget > > diff --git a/ChangeLog b/ChangeLog > index 8b693be..52fd5be 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,7 @@ > +2014-07-28 à ngel González <[email protected]> > + * contrib: Created contrib folder. > + * contrib/tsocked-wget: Added wrapper for usage with socks proxy. > + > 2014-07-25 Darshit Shah <[email protected]> > * .gitignore: Add a gitignore file for the project. > diff --git a/contrib/tsocked-wget b/contrib/tsocked-wget > new file mode 100755 > index 0000000..a362070 > --- /dev/null > +++ b/contrib/tsocked-wget > @@ -0,0 +1,91 @@ > +#!/bin/bash > + > +# Script that executes wget using a socks proxy if the environment variable > +# socks_proxy is set. > +# > +# The socks_proxy variable shall have one of the forms: > +# socks://username:password@host:port > +# socks4://username:password@host:port > +# socks5://username:password@host:port > +# with username, password and port fields being optional > +# > +# As socksification applies to the whole process, domains defined in the > +# no_proxy setting are *not* excluded. > +# > + > +# Requisites: bash (version 3.2.3 or later), tsocks and wget > + > +#################################### > +# Copyright (C) 2014 à ngel González > +# Permission is hereby granted, free of charge, to any person obtaining a > copy > +# of this software and associated documentation files (the "Software"), to > deal > +# in the Software without restriction, including without limitation the > rights > +# to use, copy, modify, merge, publish, distribute, sublicense, and/or > sell > +# copies of the Software, and to permit persons to whom the Software is > +# furnished to do so, subject to the following conditions: > +# > +# The above copyright notice and this permission notice shall be included > in > +# all copies or substantial portions of the Software. > +# > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > OR > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS > IN > +# THE SOFTWARE. > +# > + > +set -eu > + > +# Binary to be executed. Use an absolute path if installing this script as > 'wget' > +WGET=wget > + > +if [ -z "${socks_proxy:-}" ]; then > +exec "$WGET" "$@" > +fi > + > +CONFIG="" > + > +if [[ "${socks_proxy}" =~ ^socks[45]?:// ]]; then > + if [[ "${socks_proxy:5:1}" != ":" ]]; then > + CONFIG+="server_type = ${socks_proxy:5:1}" > + socks_proxy="${socks_proxy:9}" > + else > + socks_proxy="${socks_proxy:8}" > + fi > +elif [[ "${socks_proxy}" =~ ^[[:alnum:]]*:// ]]; then > + echo "Bad value specified for socks_proxy: $socks_proxy" >&2 > + exit 2 > +fi > + > +if [[ "${socks_proxy}" =~ ^([^@:]*)(:([^@]*))?@ ]]; then > + unset TSOCKS_USERNAME > + CONFIG+=" > + default_user = ${BASH_REMATCH[1]}" > + > + if [ ! -z "${BASH_REMATCH[3]}" ]; then > + unset TSOCKS_PASSWORD > + CONFIG+=" > + default_pass = ${BASH_REMATCH[3]}" > + fi > + socks_proxy="${socks_proxy:${#BASH_REMATCH[0]}}" > +fi > + > + > +# Get rid of trailing slashes > +if [[ "${socks_proxy}" =~ ^([^/]*)/ ]]; then > + socks_proxy="${socks_proxy:0:${#BASH_REMATCH[1]}}" > +fi > + > +if [[ "${socks_proxy}" =~ :([0-9]+)$ ]]; then > + CONFIG+=" > + server_port = ${BASH_REMATCH[1]}" > + socks_proxy=${socks_proxy:0:${#socks_proxy} - ${#BASH_REMATCH[0]}} > +fi > + > +CONFIG+=" > + server = ${socks_proxy}" > + > +TSOCKS_CONF_FILE=<(echo "$CONFIG") exec tsocks "$WGET" --no-proxy "$@" > + -- Thanking You, Darshit Shah
