2013-02-22 21 views
6

Bir projeyi bulutlarda projeyi oluşturmadan github'a itmek için bir işlev yazmaya çalışıyorum. Şu anda bunu this question'dan bilgi kullanarak RStudio'daki git komut satırından yapabilirsiniz.git ve curl komut satırını kullanarak

Şimdi yerel bir repodan bulutlarda repo oluşturmak için kullanabileceğim bir işleve sarmaya çalışıyorum. Bir Windows ve linux makinede bunun üzerinde çalışıyorum (bu yüzden bu mac üzerinde henüz ne kadar iyi çalıştığından emin değilim). İşte benim kodu (git konumunu algılamak) bugüne dek var:

gitpath <- NULL 
    repo <- "New" 
    user <- "CantPostThat" 
    password <- "blargcats" 


if (Sys.info()["sysname"] != "Windows") { 
    gitpath <- "git" 
} else { 
    if (is.null(gitpath)){ 
     test <- c(file.exists("C:\\Program Files (x86)\\Git\\bin\\git.exe"), 
      file.exists("C:\\Program Files\\Git\\bin\\git.exe")) 
     if (sum(test) == 0) { 
      stop("Git not found. Supply path to 'gitpath'")  
     } 
     gitpath <- c("\"C:\\Program Files (x86)\\Git\\bin\\git\"", 
      "\"C:\\Program Files\\Git\\bin\\git\"")[test][1] 
    } 
} 

Sonra system ile deneyin:

system(paste(gitpath, "--version")) 

> system(paste(gitpath, "--version")) 
git version 1.7.11.msysgit.1 

iyi görünüyor.

cmd1 <- paste(gitpath, paste0("curl -u '", user, ":", password, 
    "' https://api.github.com/user/repos -d '{\"name\":\"", repo, "\"}'")) 

system(cmd1) 

Ve mesajı alıyorum: Ama sonra gerçek kod yığın üzerinde denemek konsoldan

curl -u 'USER:PASS' https://api.github.com/user/repos -d '{"name":"REPO"}' :

> system(cmd1) 
git: 'curl' is not a git command. See 'git --help'. 

Did you mean this? 
    pull 
Warning message: 
running command '"C:\Program Files (x86)\Git\bin\git" curl -u ' trinker : PASSWORD ' https://api.github.com/user/repos -d '{"name":" three "}'' had status 1 

nasıl bu komutu çalıştırabilirsiniz.

Ayrıca önce önüne gitmeden koşmayı denedim. Şu anda bir 7 kazanım makinesi

+2

Yüklü bir takılı var mı? – hadley

+0

Eğer RCurl'u çalıştırabilirsem yaparım. Linux üzerinde denemedim. Sanırım pencereler pencerelerde bulmak olacak. –

+0

@hadley Git komut satırı ile yapabilmem için kıvrılmış olması gerekir (ancak bulamıyorum). –

cevap

2

Açıkçası işe yaramayacak bir git komutu system("git curl") olarak curl çalıştırmaya çalışıyorsunuz gibi görünüyor. Windows'da curl ikili dosyasının kurulum yolunu yukarıdaki Git yürütülebilir ile yaptığınıza benzer bir şekilde bulmanız gerektiğini düşünüyorum. Mac OS X'te Eğer dizede fazladan tırnak işaretleri kaçmayı hatırlama ...

system("curl -u \'USER:PASS\' https://api.github.com/user/repos -d \'{\"name\":\"REPO\"}\'") 

böylece gibi komutunu çalıştırabilirsiniz.

Sadece derlenmiş kıvrımlı ikili dosyayı indirebilir ve indirme konumundan çalıştırabilirsiniz. Kopyalama ve yapıştırmadan bu sınamaları test etmek için işimde Win7 kutusuna erişimim yok, ancak şu anki fikri aldınız ...

url <- "http://curl.askapache.com/download/curl-7.23.1-win64-ssl-sspi.zip" 
tmp <- tempfile(fileext = ".zip") 
download.file(url,tmp) 
unzip(tmp) 
system(paste0(tempdir(),"/curl", " -u \'USER:PASS\' https://api.github.com/user/repos -d \'{\"name\":\"REPO\"}\'")) 
+0

Bu soruya cevap verdi, ancak hala çalışmaya başlayamıyorum. Doğru olarak işaretliyorum ve [daha uygun bir soru soruyorum-] (http://stackoverflow.com/questions/15042418/send-to-github-via-curl-command-line) (Ben bile değildim bu konudaki doğru soruyu sormak). –

İlgili konular