AzureStor/R/azcopy_path.R

41 строка
925 B
R

# azcopy unset/NULL -> not initialized
# azcopy = NA -> binary not found, or version < 10 (not usable)
# azcopy = path -> usable
get_azcopy_path <- function()
{
if(exists("azcopy", envir=.AzureStor, inherits=FALSE))
{
if(!is.na(.AzureStor$azcopy))
return(.AzureStor$azcopy)
else stop("azcopy version 10+ required but not found", call.=FALSE)
}
else
{
set_azcopy_path()
Recall()
}
}
set_azcopy_path <- function(path="azcopy")
{
path <- Sys.which(path)
if(is.na(path) || path == "")
{
.AzureStor$azcopy <- NA
return(NULL)
}
ver <- suppressWarnings(processx::run(path, "--version"))
if(!grepl("version 1[[:digit:]]", ver$stdout, ignore.case=TRUE))
{
.AzureStor$azcopy <- NA
return(NULL)
}
.AzureStor$azcopy <- unname(path)
message("Using azcopy binary ", path)
invisible(NULL)
}