# Script name: fun_install_github.R # Purpose: Source all functions from a GitHub repo # Author: Kay Cichini # Date: 2012-01-01 # Credit: This is a hacked version of Brad Hadley's install_github function at # https://github.com/hadley/devtools/blob/master/R/install-github.r # Packages needed: RCurl # Arguments: repo, username, branch # Specification: I use a folder in GitHub to hold functions only fun_install_github <- function (repo = "theBioBucket-Archives", username = "gimoya", branch = "master") {require(RCurl) message("\nInstalling ", repo, " R-functions from user ", username) name <- paste(username, "-", repo, sep = "") url <- paste("https://github.com/", username, "/", repo, sep = "") zip_url <- paste("https://nodeload.github.com/", username, "/", repo, "/zipball/", branch, sep = "") src <- file.path(tempdir(), paste(name, ".zip", sep = "")) content <- getBinaryURL(zip_url, .opts = list(followlocation = TRUE, ssl.verifypeer = FALSE)) writeBin(content, src) on.exit(unlink(src), add = TRUE) repo_name <- basename(as.character(unzip(src, list = TRUE)$Name[1])) out_path <- file.path(tempdir(), repo_name) unzip(src, exdir = tempdir()) on.exit(unlink(out_path), add = TRUE) fun.path <- dir(paste(out_path, "/R/Functions/", sep = ""), full.names = T) for (i in 1:length(fun.path)) { source(fun.path[i]) cat("\n Sourcing function: ", dir(paste(out_path, "/R/Functions/", sep = ""))[i])} cat("\n") } # Example: # fun_install_github()
1 Jan 2012
R-Function to Source all Functions from a GitHub Repository
Here's a function that sources all scripts from an arbitrary github-repository. At the moment the function downloads the whole repo and sources functions kept in a folder named "Functions" - this may be adapted for everyones own purpose.
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment