mit Git und Curl-Befehlszeile
Ich versuche, eine Funktion zu schreiben, um ein Projekt in Github zu verschieben, ohne das Projekt zuerst in den Clouds zu erstellen. Derzeit können Sie dies über die Git-Befehlszeile in RStudio tun, indem Sie info from verwendendiese Frage.
Jetzt versuche ich, es in eine Funktion zu packen, die ich verwenden kannsystem
um das Repo in den Wolken aus einem lokalen Repo zu erstellen. Ich arbeite dies auf einem Windows- und Linux-Computer durch (also nicht sicher, wie gut dies auf einem Mac noch funktioniert). Hier ist mein Code (Ort des Git ermitteln):
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]
}
}
Ich probiere es dann mitsystem
:
system(paste(gitpath, "--version"))
> system(paste(gitpath, "--version"))
git version 1.7.11.msysgit.1
Sieht gut aus. Aber dann probiere ich es an einem echten Codeblock aus:
cmd1 <- paste(gitpath, paste0("curl -u '", user, ":", password,
"' https://api.github.com/user/repos -d '{\"name\":\"", repo, "\"}'"))
system(cmd1)
Und die Nachricht bekommen:
> 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
Wie kann ich diesen Befehl ausführen:
curl -u 'USER:PASS' https://api.github.com/user/repos -d '{"name":"REPO"}'
von der Konsole.
Ich habe auch versucht zu rennen, ohne dass der Git zuerst dran war. Ich bin derzeit auf einer Win-7-Maschine