Advertisement
Guest User

Untitled

a guest
Feb 12th, 2016
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. library(git2r)
  2.  
  3. r <- repository()
  4.  
  5. current_branches <- branches(r)
  6.  
  7. vars <- expand.grid(list(language = "r",
  8. sudo = c("required", "false"),
  9. dist = c("precise", "trusty"),
  10. r = c("3.1", "3.2", "devel"),
  11. r_binary_packages = c(NA_character_, "withr"),
  12. use_bioc = c(NA_character_, "true")),
  13. stringsAsFactors = FALSE)
  14.  
  15.  
  16. # add rows for r-devel for devel builds
  17. devel_bioc <- subset(vars, r == 'devel' & use_bioc == 'true')
  18. devel_bioc$use_bioc_devel = "true"
  19. vars <- plyr::rbind.fill(vars, devel_bioc)
  20.  
  21. # Add a Bioconductor package to the DESCRIPTION if use_bioc is true
  22. desc_txt <- readLines("DESCRIPTION")
  23. desc_txt[grepl("^Suggests:", desc_txt)] <- "Suggests: knitr, BiocParallel"
  24. use_bioc <- !is.na(vars$use_bioc) & vars$use_bioc == 'true'
  25. vars$extra_content <- list(list())
  26. vars$extra_content[use_bioc] <- list(list(DESCRIPTION = desc_txt))
  27. vars[is.na(vars)] <- NA_character_
  28.  
  29. content <- function(data) {
  30. paste0(names(data), ": ", data, collapse = "\n")
  31. }
  32.  
  33. name <- function(data) {
  34. paste0(names(data), "_", data, collapse = "-")
  35. }
  36.  
  37. commit_msg <- function(data) {
  38. paste0(names(data), ": ", data, collapse = ", ")
  39. }
  40.  
  41. write_branch <- function(data) {
  42. data <- Filter(Negate(is.na), data)
  43.  
  44. extra_content <- data$extra_content[[1]]
  45. data$extra_content <- NULL
  46.  
  47. con <- content(data)
  48.  
  49. nme <- name(data)
  50.  
  51. if (!nme %in% names(branches(r))) {
  52. branch_create(commits(r)[[1]], nme)
  53. } else {
  54. checkout(r, nme)
  55. }
  56.  
  57. writeLines(con, ".travis.yml")
  58. add(r, ".travis.yml")
  59.  
  60. for (i in seq_along(extra_content)) {
  61. path <- names(extra_content)[i]
  62. txt <- extra_content[[i]]
  63. writeLines(txt, path)
  64. add(r, path)
  65. }
  66. commit <- commit(r, commit_msg(data))
  67. }
  68.  
  69. for (i in seq_len(NROW(vars))) {
  70. write_branch(vars[i, ])
  71. }
  72. checkout(r, "master")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement