bash/.proxy

60 lines
2.2 KiB
Bash

#!/usr/bin/env bash
# ╭──────────────╮
# │ proxy config │
# ╰──────────────╯
# ─────────────────────────────────────< unset proxy >───────────────────────────────────
noproxy() {
unset {HTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxy}
}
# ──────────────────< proxy function to set or show the proxy variables >────────────────
proxy() {
local ip="172.22.11.69"
local port="8080"
if [ -z "$1" ]; then
echo "Usage: proxy [--show|--set]"
echo " --show Show current proxy settings"
echo " --set Set proxy to $ip:$port"
return 0
fi
case "$1" in
--show)
echo "These are your proxy configurations:"
if [ -n "${http_proxy}" ] || [ -n "${HTTP_PROXY}" ] || [ -n "${https_proxy}" ] || [ -n "${HTTPS_PROXY}" ]; then
echo "http: ${http_proxy}| HTTP: ${HTTP_PROXY}"
echo "https: ${https_proxy}| HTTPS: ${HTTPS_PROXY}"
else
echo "No proxy configured."
fi
;;
--set)
# ─< Check if the IP and port are reachable >─────────────────────────────────────────────
if nc -z -w5 $ip $port; then
# ─< If reachable, set the proxy environment variables >──────────────────────────────────
local proxy="http://${ip}:${port}"
for e in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY; do
export "${e}=${proxy}"
done
echo "Proxy set to: $proxy"
else
echo "IP $ip with port $port is not reachable."
fi
;;
*)
echo "Invalid option! Use --show or --set."
;;
esac
}
# ────────────< check network availability and set proxy if in correct network >────────────
noproxy
if ping -c 1 -W 2 swu.dom &>/dev/null; then
proxy --set
else
noproxy
fi