1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # convert string vectors to single quote-marked
- # string separated by comma
- quote_str = function(x) {
- paste0("\'", paste(x, collapse = "','"), "\'")
- }
- # get directory of the file
- file_dir = function(x) {
- dirname(normalizePath(x))
- }
- # get file name with extension
- file_name = function(x) {
- basename(normalizePath(x))
- }
- # get file name without extension
- sans_ext = tools::file_path_sans_ext
- file_name_sans = function(x) {
- basename(sans_ext(normalizePath(x)))
- }
- # generate UUID for Docker container names
- # derived from https://stackoverflow.com/questions/10492817/
- uuid = function() {
- id = paste(sample(c(letters[1:6], 0:9), 30, replace = TRUE), collapse = '')
- paste(
- substr(id, 1, 8), '_', substr(id, 9, 12), '_', '4',
- substr(id, 13, 15), '_', sample(c('8', '9', 'a', 'b'), 1),
- substr(id, 16, 18), '_', substr(id, 19, 30), sep = '',
- collapse = '')
- }
- #' check if from Bioconductor base images
- #' @importFrom stringr str_trim
- #' @noRd
- is_from_bioc = function(x) {
- substr(str_trim(x), 1L, 13L) == 'bioconductor/'
- }
- #' check if from the rocker/rstudio base image
- #' @importFrom stringr str_trim
- #' @noRd
- is_from_rstudio = function(x) {
- substr(str_trim(x), 1L, 14L) == 'rocker/rstudio'
- }
- # remove consecutive blank lines and only keep one
- sanitize_blank = function(txt) {
- blank = which(txt == "")
- # if no blank lines at all
- if (length(blank) == 0L) return(txt)
- idx = which(diff(blank) == 1L) + 1L
- # if no consecutive blank lines
- if (length(idx) == 0L) return(txt)
- txt = txt[-blank[idx]]
- txt
- }
- # determine os type
- check_os = function() {
- if (Sys.info()[['sysname']] == 'Darwin') 'mac' else if
- (.Platform$OS.type == 'windows') 'win' else 'lnx'
- }
|