support no_proxy environment variable

Change-Id: I5175f9752abe358cca0d2e3e5cf6d94605df451a
diff --git a/AUTHORS b/AUTHORS
index 6141d67..2bf4941 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -29,6 +29,7 @@
 Justin Shepherd <galstrom21@gmail.com>
 Ken Pepple <ken.pepple@rabbityard.com>
 Kiall Mac Innes <kiall@managedit.ie>
+Osamu Habuka <xiu.yushen@gmail.com>
 Russell Bryant <rbryant@redhat.com>
 Scott Moser <smoser@ubuntu.com>
 Thierry Carrez <thierry@openstack.org>
diff --git a/functions b/functions
index 46a6f8a..2f5cdbc 100644
--- a/functions
+++ b/functions
@@ -17,6 +17,7 @@
     [[ "$(id -u)" = "0" ]] && sudo="env"
     $sudo DEBIAN_FRONTEND=noninteractive \
         http_proxy=$http_proxy https_proxy=$https_proxy \
+        no_proxy=$no_proxy \
         apt-get --option "Dpkg::Options::=--force-confold" --assume-yes "$@"
 }
 
@@ -479,6 +480,7 @@
     sudo PIP_DOWNLOAD_CACHE=${PIP_DOWNLOAD_CACHE:-/var/cache/pip} \
         HTTP_PROXY=$http_proxy \
         HTTPS_PROXY=$https_proxy \
+        NO_PROXY=$no_proxy \
         $CMD_PIP install --use-mirrors $@
 }
 
@@ -509,6 +511,7 @@
         sudo \
             HTTP_PROXY=$http_proxy \
             HTTPS_PROXY=$https_proxy \
+            NO_PROXY=$no_proxy \
             python setup.py develop \
     )
 }
@@ -562,6 +565,7 @@
     local sudo="sudo"
     [[ "$(id -u)" = "0" ]] && sudo="env"
     $sudo http_proxy=$http_proxy https_proxy=$https_proxy \
+        no_proxy=$no_proxy \
         yum install -y "$@"
 }
 
diff --git a/stack.sh b/stack.sh
index 0fbb957..5d2627a 100755
--- a/stack.sh
+++ b/stack.sh
@@ -60,16 +60,21 @@
 source $TOP_DIR/stackrc
 
 # HTTP and HTTPS proxy servers are supported via the usual environment variables
-# ``http_proxy`` and ``https_proxy``.  They can be set in ``localrc`` if necessary
+# ``http_proxy`` and ``https_proxy``.  Additionally if you would like to access
+# to specific server directly and not through the proxy server, you can use
+# ``no_proxy`` environment variable.  They can be set in ``localrc`` if necessary
 # or on the command line::
 #
-#     http_proxy=http://proxy.example.com:3128/ ./stack.sh
+#     http_proxy=http://proxy.example.com:3128/ no_proxy=repo.example.net ./stack.sh
 if [[ -n "$http_proxy" ]]; then
     export http_proxy=$http_proxy
 fi
 if [[ -n "$https_proxy" ]]; then
     export https_proxy=$https_proxy
 fi
+if [[ -n "$no_proxy" ]]; then
+    export no_proxy=$no_proxy
+fi
 
 # Destination path for installation ``DEST``
 DEST=${DEST:-/opt/stack}