差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
r:set.proxy [2022/05/21 09:38] watalur:set.proxy [2022/05/21 10:04] (現在) watalu
行 3: 行 3:
 set.proxy = function(proxy) { set.proxy = function(proxy) {
   if( is.list(proxy) ) {   if( is.list(proxy) ) {
 +    if(length(setdiff(names(proxy), c("http", "https", "ftp"))) == 0 ) {
       Sys.setenv("http_proxy"=proxy$http)       Sys.setenv("http_proxy"=proxy$http)
       Sys.setenv("https_proxy"=proxy$https)       Sys.setenv("https_proxy"=proxy$https)
       Sys.setenv("ftp_proxy"=proxy$ftp)       Sys.setenv("ftp_proxy"=proxy$ftp)
       return(TRUE)       return(TRUE)
 +    } else {
 +      return(FALSE)
 +    }
   } else if (is.vector(proxy)) {   } else if (is.vector(proxy)) {
     if( length(proxy) == 3 ) {     if( length(proxy) == 3 ) {
行 13: 行 17:
       Sys.setenv("ftp_proxy"=proxy[3])       Sys.setenv("ftp_proxy"=proxy[3])
       return(TRUE)       return(TRUE)
-    } else if (is.vector) { +    } else if (is.character(proxy[1])) { 
-      if (is.character(proxy[1])) { +      Sys.setenv("http_proxy"=proxy[1]) 
-        Sys.setenv("http_proxy"=proxy[1]) +      Sys.setenv("https_proxy"=proxy[1]) 
-        Sys.setenv("https_proxy"=proxy[1]) +      Sys.setenv("ftp_proxy"=proxy[1]) 
-        Sys.setenv("ftp_proxy"=proxy[1]) +      return(TRUE) 
-        return(TRUE) +    } else { 
-      } else { +      return(FALSE)
-        return(FALSE) +
-      }+
     }     }
   } else if (is.character(proxy)) {   } else if (is.character(proxy)) {
行 35: 行 37:
 使用法は次のとおり。 使用法は次のとおり。
 <code> <code>
-set.proxy(c("http://proxy.uec.ac.jp:8080",  "http://proxy.uec.ac.jp:8080", "http://proxy.uec.ac.jp:8080"))+set.proxy(list(http="http://proxy.uec.ac.jp:8080",   
 +          https="http://proxy.uec.ac.jp:8080",  
 +          ftp="http://proxy.uec.ac.jp:8080")) 
 +</code> 
 +<code> 
 +set.proxy(c("http://proxy.uec.ac.jp:8080",   
 +            "http://proxy.uec.ac.jp:8080",  
 +            "http://proxy.uec.ac.jp:8080"))
 </code> </code>
 <code> <code>
 set.proxy("http://proxy.uec.ac.jp:8080") set.proxy("http://proxy.uec.ac.jp:8080")
 </code> </code>
 +プロキシの設定を解除する関数も一緒に用意しておく。
 +<code>
 +unset.proxy = function() {
 +  Sys.setenv("http_proxy")
 +  Sys.setenv("https_proxy")
 +  Sys.setenv("ftp_proxy")
 +}
 +</code>
 +この関数の使い方は、引数なし。
 +<code>
 +unset.proxy()
 +</code>
 +