X-Git-Url: https://code.delx.au/osx-proxyconf/blobdiff_plain/547a899096639937bb0dee69a2b8ea03786c8b24..764b80c6b10ffaace49d376ef180bb07f217f792:/proxyconf.sh diff --git a/proxyconf.sh b/proxyconf.sh index 5c49ada..a6b7d23 100755 --- a/proxyconf.sh +++ b/proxyconf.sh @@ -1,28 +1,34 @@ #!/bin/bash -if [ "$(sysconfig -q "HTTPEnable")" = "1" ]; then - host="$(sysconfig -q "HTTPProxy")" - port="$(sysconfig -q "HTTPPort")" - echo "export http_proxy=\"http://${host}:${port}\"" -else - echo "unset http_proxy" -fi -if [ "$(sysconfig -q "HTTPSEnable")" = "1" ]; then - host="$(sysconfig -q "HTTPSProxy")" - port="$(sysconfig -q "HTTPSPort")" - echo "export https_proxy=\"http://${host}:${port}\"" -else - echo "unset https_proxy" -fi -if [ "$(sysconfig -q "FTPEnable")" = "1" ]; then - host="$(sysconfig -q "FTPProxy")" - port="$(sysconfig -q "FTPPort")" - echo "export ftp_proxy=\"http://${host}:${port}\"" -else - echo "unset ftp_proxy" -fi -if [ -n "${host}" ]; then - no_proxy="$(sysconfig ExceptionsList | tr '\n' ',' | sed 's/,$//g')" +PROXY_FOUND=0 +function printEnvironment() { + local proxy_type="$1" + local environment_variable="$2" + local uri_prefix="${3:-http}" + local host port + + if [ "$(sysconfig -q "${proxy_type}Enable")" = "1" ]; then + host="$(sysconfig -q "${proxy_type}Proxy")" + port="$(sysconfig -q "${proxy_type}Port")" + echo "export ${environment_variable}='${uri_prefix}://${host}:${port}'" + + PROXY_FOUND=1 + else + echo "unset ${environment_variable}" + fi + +} + + +PATH="$(dirname "$0"):${PATH}" + +printEnvironment "HTTP" "http_proxy" +printEnvironment "HTTPS" "https_proxy" +printEnvironment "FTP" "ftp_proxy" +printEnvironment "SOCKS" "socks_proxy" "socks" + +no_proxy="$(sysconfig -q ExceptionsList)" +if [ -n "${no_proxy}" -a $PROXY_FOUND -eq 1 ]; then echo "export no_proxy=\"${no_proxy}\"" else echo "unset no_proxy"