これはただのラッパー。
set.proxy = function(proxy) { if( is.list(proxy) ) { if(length(setdiff(names(proxy), c("http", "https", "ftp"))) == 0 ) { Sys.setenv("http_proxy"=proxy$http) Sys.setenv("https_proxy"=proxy$https) Sys.setenv("ftp_proxy"=proxy$ftp) return(TRUE) } else { return(FALSE) } } else if (is.vector(proxy)) { if( length(proxy) == 3 ) { Sys.setenv("http_proxy"=proxy[1]) Sys.setenv("https_proxy"=proxy[2]) Sys.setenv("ftp_proxy"=proxy[3]) return(TRUE) } else if (is.character(proxy[1])) { Sys.setenv("http_proxy"=proxy[1]) Sys.setenv("https_proxy"=proxy[1]) Sys.setenv("ftp_proxy"=proxy[1]) return(TRUE) } else { return(FALSE) } } else if (is.character(proxy)) { Sys.setenv("http_proxy"=proxy) Sys.setenv("https_proxy"=proxy) Sys.setenv("ftp_proxy"=proxy) return(TRUE) } return(FALSE) }
使用法は次のとおり。
set.proxy(list(http="http://proxy.uec.ac.jp:8080", https="http://proxy.uec.ac.jp:8080", ftp="http://proxy.uec.ac.jp:8080"))
set.proxy(c("http://proxy.uec.ac.jp:8080", "http://proxy.uec.ac.jp:8080", "http://proxy.uec.ac.jp:8080"))
set.proxy("http://proxy.uec.ac.jp:8080")
プロキシの設定を解除する関数も一緒に用意しておく。
unset.proxy = function() { Sys.setenv("http_proxy") Sys.setenv("https_proxy") Sys.setenv("ftp_proxy") }
この関数の使い方は、引数なし。
unset.proxy()