]> code.delx.au - osx-proxyconf/blobdiff - proxyconf.sh
Check if there are any proxies set before exporting the no_proxy variable
[osx-proxyconf] / proxyconf.sh
index 78b537c43ea50a1dd43cb932afbafdeb387ba8da..262dfc8c934a7356edf79401196f069fe31849d6 100755 (executable)
@@ -1,17 +1,31 @@
 #!/bin/bash
 
-if [ "$(sysconfig "HTTPEnable")" -eq 1 ]; then
-       host="$(sysconfig "HTTPProxy")"
-       port="$(sysconfig "HTTPPort")"
-       echo "export http_proxy=\"http://${host}:${port}\""
-fi
-if [ "$(sysconfig "HTTPSEnable")" -eq 1 ]; then
-       host="$(sysconfig "HTTPSProxy")"
-       port="$(sysconfig "HTTPSPort")"
-       echo "export https_proxy=\"http://${host}:${port}\""
-fi
-if [ "$(sysconfig "FTPEnable")" -eq 1 ]; then
-       host="$(sysconfig "FTPProxy")"
-       port="$(sysconfig "FTPPort")"
-       echo "export ftp_proxy=\"http://${host}:${port}\""
+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
+
+}
+printEnvironment "HTTP" "http_proxy"
+printEnvironment "HTTPS" "https_proxy"
+printEnvironment "FTP" "ftp_proxy"
+printEnvironment "SOCKS" "socks_proxy" "socks"
+
+no_proxy="$(sysconfig -q ExceptionsList | tr '\n' ',' | sed 's/,$//g')"
+if [ ! -z "${no_proxy}" ] && [ $PROXY_FOUND -ne 0 ]; then
+       echo "export no_proxy=\"${no_proxy}\""
+else
+       echo "unset no_proxy"
 fi