zip-utils {usethis}R Documentation

Download and unpack a ZIP file

Description

Functions to download and unpack a ZIP file into a local folder of files, with very intentional default behaviour. Useful in pedagogical settings or anytime you need a large audience to download a set of files quickly and actually be able to find them. The underlying helpers are documented in use_course_details.

Usage

use_course(url, destdir = getOption("usethis.destdir"))

use_zip(
  url,
  destdir = getwd(),
  cleanup = if (rlang::is_interactive()) NA else FALSE
)

Arguments

url

Link to a ZIP file containing the materials. To reduce the chance of typos in live settings, these shorter forms are accepted:

* GitHub repo spec: "OWNER/REPO". Equivalent to
  `https://github.com/OWNER/REPO/DEFAULT_BRANCH.zip`.
* bit.ly or rstd.io shortlinks: "bit.ly/xxx-yyy-zzz" or "rstd.io/foofy".
  The instructor must then arrange for the shortlink to point to a valid
  download URL for the target ZIP file. The helper
  [create_download_url()] helps to create such URLs for GitHub, DropBox,
  and Google Drive.
destdir

Destination for the new folder. Defaults to the location stored in the global option usethis.destdir, if defined, or to the user's Desktop or similarly conspicuous place otherwise.

cleanup

Whether to delete the original ZIP file after unpacking its contents. In an interactive setting, NA leads to a menu where user can approve the deletion (or decline).

Value

Path to the new directory holding the unpacked ZIP file, invisibly.

Functions

Examples

## Not run: 
# download the source of usethis from GitHub, behind a bit.ly shortlink
use_course("bit.ly/usethis-shortlink-example")
use_course("http://bit.ly/usethis-shortlink-example")

# download the source of rematch2 package from CRAN
use_course("https://cran.r-project.org/bin/windows/contrib/3.4/rematch2_2.0.1.zip")

# download the source of rematch2 package from GitHub, 4 ways
use_course("r-lib/rematch2")
use_course("https://api.github.com/repos/r-lib/rematch2/zipball/HEAD")
use_course("https://api.github.com/repos/r-lib/rematch2/zipball/main")
use_course("https://github.com/r-lib/rematch2/archive/main.zip")

## End(Not run)

[Package usethis version 2.2.3 Index]