eristical

たまに書きます

プロキシ関係の設定

1年4ヶ月ぶりの更新

Macbook Airクリーンインストールしたくなったので, こっちにプロキシ関係の設定をメモしておく

環境としては,ネットワーク環境設定で新しく環境を作って, プロキシを使う必要のあるネットワークの設定を全てそっちに隔離している感じ
これをすると networksetup -getcurrentlocation で今使っている環境名(ENVNAME)が得られるので, シェルの読み込み時とかに走らせたりすれば自動で対応できて嬉しい

# .ssh/config

Match exec "test `networksetup -getcurrentlocation` = ENVNAME"
    ProxyCommand connect -H http://user@proxy.example.jp:port %h %p
#! .zsh/proxy.zsh

proxy=http://user:password@proxy.example.com:port/
switch_trigger=ENVNAME

function set_proxy() {
    echo "set proxy for $switch_trigger"

    export ALL_PROXY=$proxy
    export HTTP_PROXY=$proxy
    export HTTPS_PROXY=$proxy
    export FTP_PROXY=$proxy
    export all_proxy=$proxy
    export http_proxy=$proxy
    export https_proxy=$proxy
    export ftp_proxy=$proxy

    git config --global http.proxy $proxy
    git config --global https.proxy $proxy
}

function unset_proxy() {
    echo "unset proxy"

    unset ALL_PROXY
    unset HTTP_PROXY
    unset HTTPS_PROXY
    unset FTP_PROXY
    unset all_proxy
    unset http_proxy
    unset https_proxy
    unset ftp_proxy

    git config --global --unset http.proxy
    git config --global --unset https.proxy
}

if [ "`networksetup -getcurrentlocation`" = "$switch_trigger" ]; then
    set_proxy
else
    unset_proxy
fi

alias switch_proxy="source ~/.zsh/proxy.zsh"