Skip to content

Instantly share code, notes, and snippets.

@xirixiz
Last active June 1, 2022 08:08
Show Gist options
  • Save xirixiz/12f2afd85a6dc73305950fbacca3dfdb to your computer and use it in GitHub Desktop.
Save xirixiz/12f2afd85a6dc73305950fbacca3dfdb to your computer and use it in GitHub Desktop.
#!/bin/bash
function __set_proxy_envs() {
NO_PROXY_ENV="no_proxy NO_PROXY"
PROXY_ENV="http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY"
}
function __unset_proxy_envs() {
unset NO_PROXY_ENV PROXY_ENV
}
function proxy_enable() {
__set_proxy_envs
local NO_PROXY_VALUE='localhost,127.0.0.1,0,1,2,3,4,5,6,7,8,9'
local PROXY_USERNAME=''
local PROXY_SERVER=''
local PROXY_PORT=''
local PROXY_PASSWORD=''
if [[ -z "${PROXY_USERNAME}" ]]; then
echo -n "Username: "
read -r PROXY_USERNAME
fi
if [[ -n "${PROXY_USERNAME}" ]] && [[ -z "${PROXY_PASSWORD}" ]]; then
read -p "Password: " -rs PROXY_PASSWORD && echo -e " "
fi
if [[ -z "${PROXY_SERVER}" ]]; then
echo -n "Server: "
read -r PROXY_SERVER
fi
if [[ -z "${PROXY_PORT}" ]]; then
echo -n "Port: "
read -r PROXY_PORT
fi
local PROXY_CREDENTIALS=$(echo -n "${PROXY_USERNAME}:${PROXY_PASSWORD}" | base64 )
local PROXY_VALUE="http://${PROXY_CREDENTIALS}@${PROXY_SERVER}:${PROXY_PORT}"
for envar in ${NO_PROXY_ENV}; do
export "${envar}"="${NO_PROXY_VALUE}"
done
for envar in ${PROXY_ENV}; do
export "${envar}"="${PROXY_VALUE}"
done
echo "No proxy value set to: ${NO_PROXY_VALUE}"
echo "Proxy environment variable(s) set for: ${PROXY_ENV}"
__unset_proxy_envs
}
function proxy_disable() {
__set_proxy_envs
for envar in ${PROXY_ENV} and ${NO_PROXY_ENV}; do
unset "${envar}"
done
echo "Proxy environment variable(s) removed: ${NO_PROXY_ENV} ${PROXY_ENV}"
__unset_proxy_envs
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment