Title: | A Binary Download Manager |
Version: | 0.1.3 |
Description: | Tools and functions for managing the download of binary files. Binary repositories are defined in 'YAML' format. Defining new pre-download, download and post-download templates allow additional repositories to be added. |
Depends: | R (≥ 3.3) |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
Suggests: | testthat, covr, knitr, rmarkdown |
Imports: | rappdirs, yaml, httr, jsonlite, xml2, utils, stats, assertthat, semver |
URL: | https://docs.ropensci.org/binman/, https://github.com/ropensci/binman |
BugReports: | https://github.com/ropensci/binman/issues |
RoxygenNote: | 7.2.1 |
VignetteBuilder: | knitr |
NeedsCompilation: | no |
Packaged: | 2022-09-01 03:48:06 UTC; juyeongkim |
Author: | John Harrison [aut] (original author), Ju Yeong Kim [cre] (rOpenSci maintainer) |
Maintainer: | Ju Yeong Kim <jkim2345@fredhutch.org> |
Repository: | CRAN |
Date/Publication: | 2022-09-01 04:20:02 UTC |
Get application directory
Description
Get application directory
Usage
app_dir(appname, check = TRUE)
Arguments
appname |
A character string giving the name of the application |
check |
check whether the app given by appname exists or not. |
Value
A character string giving the path of the directory
Examples
## Not run:
appdir <- app_dir("superduperapp", FALSE)
## End(Not run)
Assign directory
Description
Assign directory to download list
Usage
assign_directory(dllist, appname)
Arguments
dllist |
A named list of data.frames. The name indicates the platform. The data.frame should contain the version, url and file to be processed. |
appname |
Name to give the app |
Value
A named list of data.frames. The data.frame should contain the version, url and file to be processed, the directory to download the file to and whether the file already exists.
Examples
## Not run:
tdata <- system.file("testdata", "test_dllist.Rdata", package = "binman")
load(tdata)
assign_directory(test_dllist, "myapp")
## End(Not run)
binman
Description
A Binary Download Manager.
Details
Tools and functions for managing the download of binary files. Binary repositories are defined in 'YAML' format. Defining new pre-download, download and post-download templates allow additional repositories to be added.
Download binaries
Description
Download binaries from repository
Usage
download_files(dllist, overwrite = FALSE)
Arguments
dllist |
A named list of data.frames. The data.frame should contain the version, url and file to be processed, the directory to download the file to and whether the file already exists. |
overwrite |
Overwrite existing binaries. Default value of FALSE |
Value
A data.frame indicating whether a file was downloaded for a platform.
Examples
## Not run:
trdata <- system.file("testdata", "test_dlres.Rdata", package = "binman")
tldata <- system.file("testdata", "test_dllist.Rdata", package = "binman")
load(trdata)
load(tldata)
dllist <- assign_directory(test_dllist, "myapp")
testthat::with_mock(
`httr::GET` = function(...) {
test_llres
},
`base::dir.create` = function(...) {
TRUE
},
dlfiles <- download_files(dllist)
)
## End(Not run)
Objects exported from other packages
Description
These objects are imported from other packages. Follow the links below to see their documentation.
- semver
List app versions
Description
List app versions by platform
Usage
list_versions(appname, platform = c("ALL"))
Arguments
appname |
A character string giving the name of the application |
platform |
A character vector of platforms to list. Defaults to "ALL" |
Value
A list of platforms with version directories
Examples
## Not run:
appdir <- app_dir("superduperapp", FALSE)
platforms <- LETTERS[1:4]
versions <- LETTERS[5:7]
mkdirs <- file.path(appdir, outer(platforms, versions, file.path))
chk <- vapply(mkdirs, dir.create, logical(1), recursive = TRUE)
expect_true(all(chk))
res <- list_versions("superduperapp")
unlink(appdir, recursive = TRUE)
## End(Not run)
Do not post process
Description
Do not post process dlfiles
Usage
noproc_dlfiles(dlfiles)
Arguments
dlfiles |
A data.frame of files by platform and indicating whether they were processed |
Value
Returns a list of character vectors indicating files processed
Examples
## Not run:
ymlfile <- system.file("exdata", "sampleapp4.yml", package = "binman")
trdata <- system.file("testdata", "test_dlres.Rdata", package = "binman")
load(trdata)
testthat::with_mock(
`httr::GET` = function(...) {
test_llres
},
`base::dir.create` = function(...) {
TRUE
},
procyml <- process_yaml(ymlfile)
)
procyml
## End(Not run)
Objects exported from other packages
Description
These objects are imported from other packages. Follow the links below to see their documentation.
- semver
Pre download bitbucket downloads
Description
Pre download bitbucket downloads template function
Usage
predl_bitbucket_downloads(
url,
platform,
history,
appname,
platformregex = platform,
versionregex = "\\d+(?:\\.\\d+)+"
)
Arguments
url |
A url giving the bitbucket download JSON for a project. As an example https://bitbucket.org/ariya/phantomjs/downloads the phantomjs project has an asset JSON available at https://api.bitbucket.org/2.0/repositories/ariya/phantomjs/downloads?pagelen=100 |
platform |
A character vector of platform names |
history |
The maximum number of files to get for a platform |
appname |
Name of the app |
platformregex |
A filter for platforms. Defaults to the platform |
versionregex |
A regex for retrieving the version. |
Value
A named list of data.frames. The name indicates the
platform. The data.frame should contain the version, url and file
to be processed. Used as input for download_files
or
an equivalent.
Examples
## Not run:
bbdata <- system.file("testdata", "test_bitbucketdl.json",
package = "binman"
)
platform <- c("linux64", "linux32", "windows", "macosx")
platformregex <- c("linux-x86_64", "linux-i686", "windows", "macosx")
bbdllist <-
predl_bitbucket_downloads(
url = bbdata, platform, history = 3L,
appname = "binman_chromedriver",
platformregex
)
## End(Not run)
Pre download Github assets
Description
Pre download Github assets template function
Usage
predl_github_assets(
url,
platform,
history,
appname,
fileregex = "",
platformregex = platform,
versionregex = c("", "")
)
Arguments
url |
A url giving the github asset JSON for a project. As an example https://github.com/mozilla/geckodriver/releases the geckodriver project has an asset JSON available at https://api.github.com/repos/mozilla/geckodriver/releases |
platform |
A character vector of platform names |
history |
The maximum number of files to get for a platform |
appname |
Name of the app |
fileregex |
A filter for files |
platformregex |
A filter for platforms. Defaults to the platform |
versionregex |
A regex for retrieving the version. |
Value
A named list of data.frames. The name indicates the
platform. The data.frame should contain the version, url and file
to be processed. Used as input for download_files
or
an equivalent.
Examples
## Not run:
gadata <- system.file("testdata", "test_gitassets.json",
package = "binman"
)
platform <- c("linux64", "win64", "macos")
gadllist <- predl_github_assets(
url = gadata, platform, history = 3L,
appname = "binman_chromedriver"
)
## End(Not run)
Pre-Download Google Storage
Description
Pre-Download Google Storage template function
Usage
predl_google_storage(
url,
platform,
history,
appname,
fileregex = "\\.zip$",
platformregex = platform,
versionregex = c(paste0("(.*)/.*", fileregex), "\\1")
)
Arguments
url |
A url giving the JSON bucket listings for a project. For example: http://chromedriver.storage.googleapis.com/index.html lists the chromedriver files but https://www.googleapis.com/storage/v1/b/chromedriver/o/ is the JSON listings for the project. |
platform |
A character vector of platform names |
history |
The maximum number of files to get for a platform |
appname |
Name of the app |
fileregex |
A filter for files |
platformregex |
A filter for platforms. Defaults to the platform names. |
versionregex |
A regex for retrieving the version. |
Value
A named list of data.frames. The name indicates the
platform. The data.frame should contain the version, url and file
to be processed. Used as input for download_files
or
an equivalent.
Examples
## Not run:
gsdata <- system.file("testdata", "test_googstor.json",
package = "binman"
)
platform <- c("linux64", "win32", "mac64")
gsdllist <- predl_google_storage(
url = gsdata, platform, history = 5L,
appname = "binman_chromedriver"
)
## End(Not run)
Process a yaml file
Description
Process a yaml file. The file defines the pre-download function, the download function and the post download function.
Usage
process_yaml(ymlfile, verbose = TRUE)
Arguments
ymlfile |
A file in a YAML format defining the pre-download/ download and post download functions together with their arguments. |
verbose |
If TRUE, include status messages (if any) |
Value
A list of files processed (downloaded and post processed)
Examples
## Not run:
ymlfile <- system.file("exdata", "sampleapp.yml", package = "binman")
trdata <- system.file("testdata", "test_dlres.Rdata", package = "binman")
load(trdata)
testthat::with_mock(
`httr::GET` = function(...) {
test_llres
},
`base::dir.create` = function(...) {
TRUE
},
`utils::unzip` = function(zipfile, ...) {
zipfile
},
procyml <- process_yaml(ymlfile)
)
procyml
## End(Not run)
Objects exported from other packages
Description
These objects are imported from other packages. Follow the links below to see their documentation.
- semver
Objects exported from other packages
Description
These objects are imported from other packages. Follow the links below to see their documentation.
- semver
Remove application platform
Description
Remove application files/directories for a given platform
Usage
rm_platform(appname, platform = c("ALL"))
Arguments
appname |
A character string giving the name of the application |
platform |
A character vector indicating the platform to remove. Defaults to "ALL" |
Value
Returns a logical vector indicating whether the removal of platform was successful. Return is invisible.
Examples
## Not run:
appdir <- app_dir(appname, FALSE)
platforms <- LETTERS[1:4]
versions <- LETTERS[5:7]
mkdirs <- file.path(appdir, outer(platforms, versions, file.path))
chk <- vapply(mkdirs, dir.create, logical(1), recursive = TRUE)
appver <- list_versions(appname)
rm_platform(appname, platforms[2:3])
unlink(appdir, recursive = TRUE)
## End(Not run)
Remove application version
Description
Remove application version for a given platform
Usage
rm_version(appname, platform, version = c("ALL"))
Arguments
appname |
A character string giving the name of the application |
platform |
A character string indicating the platform. |
version |
A character vector of versions to remove. Defaults to "ALL" |
Value
Returns a logical vector indicating whether the removal of version was successful. Return is invisible.
Examples
## Not run:
appdir <- app_dir(appname, FALSE)
platforms <- LETTERS[1:4]
versions <- LETTERS[5:7]
mkdirs <- file.path(appdir, outer(platforms, versions, file.path))
chk <- vapply(mkdirs, dir.create, logical(1), recursive = TRUE)
appver <- list_versions(appname)
rm_version(appname, platforms[2], versions[1:2])
unlink(appdir, recursive = TRUE)
## End(Not run)
Objects exported from other packages
Description
These objects are imported from other packages. Follow the links below to see their documentation.
- semver
Unzip/Untar downloaded files
Description
Unzip/Untar downloaded files. Keeps the original zip file
Usage
unziptar_dlfiles(dlfiles, chmod = FALSE)
Arguments
dlfiles |
A data.frame of files by platform and indicating whether they were processed |
chmod |
change the mode of the unarchived file/files to "755" so they are executable on unix like systems. |
Value
Returns a list of character vectors indicating files processed
Examples
## Not run:
ymlfile <- system.file("exdata", "sampleapp.yml", package = "binman")
trdata <- system.file("testdata", "test_dlres.Rdata", package = "binman")
load(trdata)
testthat::with_mock(
`httr::GET` = function(...) {
test_llres
},
`base::dir.create` = function(...) {
TRUE
},
`utils::unzip` = function(zipfile, ...) {
zipfile
},
procyml <- process_yaml(ymlfile)
)
procyml
## End(Not run)