dot: proxy.bash 增加配置校验并收窄配置变量作用域
This commit is contained in:
@@ -1,10 +1,43 @@
|
|||||||
PROXY_IP="192.168.0.104"
|
proxy_ip="192.168.0.104"
|
||||||
HTTP_PROXY="http://${PROXY_IP}:20172"
|
proxy_http_port="20172"
|
||||||
SOCKS_PROXY="socks5://${PROXY_IP}:20170"
|
# SOCKS_PROXY="socks5://${PROXY_IP}:20170"
|
||||||
|
|
||||||
|
_proxy_config_validate() {
|
||||||
|
if [[ -z "$proxy_ip" && -z "$proxy_http_port" ]]; then
|
||||||
|
echo "error: proxy_ip and proxy_http_port is not set" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if [[ -z "$proxy_ip" ]]; then
|
||||||
|
echo "error: proxy_id is not set"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if [[ -z "$proxy_http_port" ]]; then
|
||||||
|
echo "error: proxy_http_port is not set"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [[ "$proxy_http_port" =~ ^[0-9]+$ ]] || ((proxy_http_port < 1 || proxy_http_port > 65535)); then
|
||||||
|
echo "error: proxy_http_port is invalid: $proxy_http_port" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v nc >/dev/null 2>&1; then
|
||||||
|
if ! nc -z -w2 "$proxy_ip" "$proxy_http_port" 2>/dev/null; then
|
||||||
|
echo "error: proxy $proxy_ip:$proxy_http_port is not reachable" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
set-shell-proxy() {
|
set-shell-proxy() {
|
||||||
export http_proxy="$HTTP_PROXY"
|
_proxy_config_validate || return 1
|
||||||
export https_proxy="$HTTP_PROXY"
|
|
||||||
|
local http_proxy_url="http://${proxy_ip}:${proxy_http_port}"
|
||||||
|
|
||||||
|
export http_proxy="$http_proxy_url"
|
||||||
|
export https_proxy="$http_proxy_url"
|
||||||
}
|
}
|
||||||
|
|
||||||
unset-shell-proxy() {
|
unset-shell-proxy() {
|
||||||
@@ -13,8 +46,10 @@ unset-shell-proxy() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set-git-proxy() {
|
set-git-proxy() {
|
||||||
prefix_cmd=""
|
_proxy_config_validate || return 1
|
||||||
flag="--global"
|
|
||||||
|
local prefix_cmd=""
|
||||||
|
local flag="--global"
|
||||||
if [[ "$1" == "-s" ]]; then
|
if [[ "$1" == "-s" ]]; then
|
||||||
prefix_cmd="sudo"
|
prefix_cmd="sudo"
|
||||||
flag="--system"
|
flag="--system"
|
||||||
@@ -22,13 +57,15 @@ set-git-proxy() {
|
|||||||
flag="--local"
|
flag="--local"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$prefix_cmd git config $flag http.proxy $HTTP_PROXY
|
local http_proxy_url="http://${proxy_ip}:${proxy_http_port}"
|
||||||
|
|
||||||
|
$prefix_cmd git config $flag http.proxy $http_proxy_url
|
||||||
$prefix_cmd git config $flag http.sslVerify false
|
$prefix_cmd git config $flag http.sslVerify false
|
||||||
}
|
}
|
||||||
|
|
||||||
unset-git-proxy() {
|
unset-git-proxy() {
|
||||||
prefix_cmd=""
|
local prefix_cmd=""
|
||||||
flag="--global"
|
local flag="--global"
|
||||||
if [[ "$1" == "-s" ]]; then
|
if [[ "$1" == "-s" ]]; then
|
||||||
prefix_cmd="sudo"
|
prefix_cmd="sudo"
|
||||||
flag="--system"
|
flag="--system"
|
||||||
@@ -41,8 +78,12 @@ unset-git-proxy() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set-npm-proxy() {
|
set-npm-proxy() {
|
||||||
npm config set proxy $HTTP_PROXY
|
_proxy_config_validate || return 1
|
||||||
npm config set https-proxy $HTTP_PROXY
|
|
||||||
|
local http_proxy_url="http://${proxy_ip}:${proxy_http_port}"
|
||||||
|
|
||||||
|
npm config set proxy $http_proxy_url
|
||||||
|
npm config set https-proxy $http_proxy_url
|
||||||
}
|
}
|
||||||
|
|
||||||
unset-npm-proxy() {
|
unset-npm-proxy() {
|
||||||
|
|||||||
Reference in New Issue
Block a user