add function to use git proxy via env
This commit is contained in:
parent
d3227931e2
commit
dab726c929
1 changed files with 84 additions and 0 deletions
84
bin/git-proxy
Executable file
84
bin/git-proxy
Executable file
|
@ -0,0 +1,84 @@
|
|||
#! /bin/bash
|
||||
|
||||
# connect to the Git repository through a SOCKS proxy
|
||||
|
||||
|
||||
# default setting is to use port 1080 on the local host
|
||||
proxy="localhost:1080"
|
||||
from="default"
|
||||
|
||||
# check if there is a value in the git configuration
|
||||
if git config --get socks.proxy >& /dev/null; then
|
||||
proxy=`git config --get socks.proxy`
|
||||
from="git's socks.proxy"
|
||||
fi
|
||||
|
||||
# check if a generic proxy has been defined in the environment
|
||||
if [ -n "$ALL_PROXY" ]; then
|
||||
proxy="$ALL_PROXY"
|
||||
from="\$ALL_PROXY"
|
||||
fi
|
||||
if [ -n "$all_proxy" ]; then
|
||||
proxy="$all_proxy"
|
||||
from="\$all_proxy"
|
||||
fi
|
||||
|
||||
# check if a SOCKS proxy has been defined in the environment
|
||||
if [ -n "$SOCKS_PROXY" ]; then
|
||||
proxy="$SOCKS_PROXY"
|
||||
from="\$SOCKS_PROXY"
|
||||
fi
|
||||
if [ -n "$socks_proxy" ]; then
|
||||
proxy="$socks_proxy"
|
||||
from="\$socks_proxy"
|
||||
fi
|
||||
if [ -n "$SOCKS5_PROXY" ]; then
|
||||
proxy="$SOCKS5_PROXY"
|
||||
from="\$SOCKS5_PROXY"
|
||||
fi
|
||||
if [ -n "$socks5_proxy" ]; then
|
||||
proxy="$socks5_proxy"
|
||||
from="\$socks5_proxy"
|
||||
fi
|
||||
|
||||
# check if a git specific SOCKS proxy has been defined in the environment
|
||||
if [ -n "$GIT_SOCKS_PROXY" ]; then
|
||||
proxy="$GIT_SOCKS_PROXY"
|
||||
from="\$GIT_SOCKS_PROXY"
|
||||
fi
|
||||
|
||||
function usage() {
|
||||
cat << @EOF
|
||||
Usage:
|
||||
`basename $0` HOST PORT
|
||||
|
||||
Helper script to connect to a Git repository over the git:// protocol at host HOST and port PORT through a SOCKS proxy at $proxy ($from).
|
||||
|
||||
To use the proxy for all git:// traffic, set the core.gitproxy option to "git-proxy":
|
||||
|
||||
git config core.gitproxy "git-proxy"
|
||||
|
||||
|
||||
To use the proxy only for some reporitories, use the syntax explained in git-config(1).
|
||||
|
||||
To configure which proxy to use, set an appropriate environment variable (see below) or socks.proxy option to the proxy address, for example "localhost:1080":
|
||||
|
||||
git config socks.proxy "localhost:1080"
|
||||
|
||||
|
||||
The address of the proxy is read from (in order of priority):
|
||||
- the GIT_SOCKS_PROXY environment variable;
|
||||
- the SOCKS_PROXY or SOCKS5_PROXY environment variable;
|
||||
- the ALL_PROXY environment variable (see curl(1));
|
||||
- the socks.proxy git option;
|
||||
- the default value: localhost:1080 .
|
||||
@EOF
|
||||
}
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ] || [ -n "$3" ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# connect through the specifid proxy
|
||||
nc -x "$proxy" "$1" "$2"
|
Loading…
Reference in a new issue