Permalink
Browse files

Brought in Lekensteyn's detect-http-proxy script.

  • Loading branch information...
1 parent 5823b5c commit 3763add2026a4edc63b4b58161e0a89351ca755e @garthk committed Apr 5, 2012
Showing with 45 additions and 0 deletions.
  1. +45 −0 files/detect-http-proxy
View
45 files/detect-http-proxy
@@ -0,0 +1,45 @@
+#!/bin/bash
+# detect-http-proxy - Returns a HTTP proxy which is available for use
+
+# Author: Lekensteyn <lekensteyn@gmail.com>
+
+# Supported since APT 0.7.25.3ubuntu1 (Lucid) and 0.7.26~exp1 (Debian Squeeze)
+# Unsupported: Ubuntu Karmic and before, Debian Lenny and before
+
+# Put this file in /etc/apt/detect-http-proxy and create and add the below
+# configuration in /etc/apt/apt.conf.d/30detectproxy
+# Acquire::http::ProxyAutoDetect "/etc/apt/detect-http-proxy";
+
+# APT calls this script for each host that should be connected to. Therefore
+# you may see the proxy messages multiple times (LP 814130). If you find this
+# annoying and wish to disable these messages, set show_proxy_messages to 0
+show_proxy_messages=1
+
+# on or more proxies can be specified. Note that each will introduce a routing
+# delay and therefore its recommended to put the proxy which is most likely to
+# be available on the top. If no proxy is available, a direct connection will
+# be used
+try_proxies=(
+10.0.0.1:8000
+10.0.0.2:8000
+)
+
+print_msg() {
+ # \x0d clears the line so [Working] is hidden
+ [ "$show_proxy_messages" = 1 ] && printf '\x0d%s\n' "$1" >&2
+}
+
+for proxy in "${try_proxies[@]}"; do
+ # if the host machine / proxy is reachable...
+ if nc -z ${proxy/:/ }; then
+ proxy=http://$proxy
+ print_msg "Proxy that will be used: $proxy"
+ echo "$proxy"
+ exit
+ fi
+done
+print_msg "No proxy will be used"
+
+# Workaround for Launchpad bug 654393 so it works with Debian Squeeze (<0.8.11)
+echo DIRECT
+

0 comments on commit 3763add

Please sign in to comment.