metrumresearchgroup / review

helpful tools for organizing and performing quality control (QC) tasks
https://metrumresearchgroup.github.io/review/
2 stars 0 forks source link

determine difference between svn and system user #64

Closed andersone1 closed 8 months ago

andersone1 commented 8 months ago
svnUser <- function(.host_name = "mc1.metrumrg.com"){

  info_list <- tryCatch(
    review:::svnCommand(.command = "info"),
    error = identity
  )

  if (inherits(info_list, "error")) {
    stop("svn info failed")
  }

  sys_user <- Sys.info()[["user"]]

  svn_root <- info_list$entry$repository$root

  svn_ssh_user <- 
    unlist(
      strsplit(
        svn_root,
        split = paste0("@", .host_name), 
        fixed = TRUE
      )
    )[1]

  svn_user <- unlist(strsplit(svn_ssh_user, "svn+ssh://", fixed = TRUE))[2]

  if (is.na(svn_user)) {

    stop("svn user could not be detected from repository root '", svn_root, "'")

  }

  list(
    host = .host_name,
    root = svn_root,
    sys = sys_user,
    svn = svn_user
  )

}