#' @export install_package_system_dependencies <- function(package_name, tag, platform = platform, local_clone_dir, deps_verbose = FALSE) { cli::cli_alert("{.fun install_package_system_dependencies}: Cloning package {.pkg {package_name[1]}} with tag {.field {tail(tag, 1)}}.") t1 <- Sys.time() local_clone_dir_single <- sprintf("%s/%s_%s", local_clone_dir, package_name[1], tail(tag, 1)) if (!dir.exists(local_clone_dir_single)) { system2("git", args = c( "clone", "-q", sprintf("--branch=%s", tail(tag, 1)), sprintf("https://github.com/cran/%s", package_name[1]), local_clone_dir_single )) } if (grepl("alpine", platform)) { platform <- "alpine" } cli::cli_alert("{.fun install_package_system_dependencies}: Installing R package dependencies for {.pkg {package_name[1]}} with tag {.field {tail(tag, 1)}}.") # Sys.setenv(PKG_SYSREQS_PLATFORM = platform) Sys.setenv(PKG_SYSREQS = TRUE) Sys.setenv(PKG_SYSREQS_VERBOSE = TRUE) # FIXME: https://github.com/r-lib/pak/issues/610 if (grepl("rhel-9", pak::system_r_platform())) { Sys.setenv(PKG_SYSREQS_PLATFORM = "redhat-9") } else if (grepl("rhel-9", pak::system_r_platform())) { Sys.setenv(PKG_SYSREQS_PLATFORM = "redhat-8") } if (deps_verbose) { pak::local_install_deps(sprintf("%s", local_clone_dir_single)) } else { suppressMessages(pak::local_install_deps(sprintf("%s", local_clone_dir_single))) } cli::cli_alert("{.fun install_package_system_dependencies}: Removing temporary clone dir at {.path {local_clone_dir_single}}.") total_build_time <- round(Sys.time() - t1, 2) cli::cli_alert("Dependency installation time ({.pkg {package_name[[1]]}}): {.strong {total_build_time} {units(difftime(Sys.time(), t1))}}.") unlink(sprintf("%s", local_clone_dir_single), recursive = TRUE, force = TRUE) }