build-cran-binaries/R/install-deps.R
2024-07-24 22:15:56 +02:00

30 lines
1.3 KiB
R

#' @export
install_package_system_dependencies <- function(package_name,
tag,
platform = "redhat-9",
local_clone_dir) {
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
))
}
Sys.setenv(PKG_SYSREQS_PLATFORM = platform)
Sys.setenv(PKG_SYSREQS = TRUE)
Sys.setenv(PKG_SYSREQS_VERBOSE = TRUE)
suppressMessages(pak::local_install_dev_deps(sprintf("%s", local_clone_dir_single)))
cli::cli_alert("{.fun install_package_system_dependencies}: Removing {.path {local_clone_dir_single}}.")
total_build_time <- round(Sys.time() - t1, 2)
cli::cli_alert("Execution time for installing dependencies of package {.pkg {package_name[[1]]}}: {.strong {total_build_time} {units(difftime(Sys.time(), t1))}}.")
unlink(sprintf("%s", local_clone_dir_single), recursive = TRUE, force = TRUE)
}