R/xlcEnsureDependenciesFor.R

#############################################################################
#
# XLConnect
# Copyright (C) 2010-2020 Mirai Solutions GmbH
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#
#############################################################################

#############################################################################
#
# XLConnect Package Installation: check and download missing JAR dependencies
# into the package installation directory
# 
# Author: Simon Poltier, Mirai Solutions GmbH
#
#############################################################################

xlcEnsureDependenciesFor <- function (url, name, versionpattern, libname, pkgname, debianpkg = NULL, rpmpkg = NULL) {
  files <- checkSystemPackage(debianpkg, rpmpkg, versionpattern)
  numJars = length(files)
  if(numJars == 0) {
    if (!interactive()) {
      destDir <- file.path(libname, pkgname, "java")
      dst <- file.path(destDir, name)
      if(!file.exists(dst)){
        tryCatch({
          download.file(url, dst, mode="wb")
        },
        error=function(e) {
          write(paste0("downloading JAR dependencies failed: ",url), file.path(libname, pkgname, ".fail"))
          e
        })
      }
    }
    c()
  } else {
    files
  }
}

Try the XLConnect package in your browser

Any scripts or data that you put into this service are public.

XLConnect documentation built on Feb. 16, 2023, 5:53 p.m.