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.
use_course(url, destdir = getOption("usethis.destdir"))
use_zip(
url,
destdir = getwd(),
cleanup = if (rlang::is_interactive()) NA else FALSE
)
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".
for the shortlink to point to a valid
The instructor must then arrange for the target ZIP file. The helper
download URL create_download_url()] helps to create such URLs for GitHub, DropBox,
[ and Google Drive.
The new folder is stored here. If NULL
, defaults to user's
Desktop or some other conspicuous place. You can also set a default
location using the option usethis.destdir
, e.g.
options(usethis.destdir = "a/good/dir")
, perhaps saved to your
.Rprofile
with edit_r_profile()
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).
Path to the new directory holding the unpacked ZIP file, invisibly.
use_course
: Designed with live workshops in mind. Includes intentional friction to
highlight the download destination. Workflow:
User executes, e.g., use_course("bit.ly/xxx-yyy-zzz")
.
User is asked to notice and confirm the location of the new folder. Specify
destdir
or configure the "usethis.destdir"
option to prevent this.
User is asked if they'd like to delete the ZIP file.
If new folder contains an .Rproj
file, a new instance of RStudio is
launched. Otherwise, the folder is opened in the file manager, e.g. Finder
or File Explorer.
use_zip
: More useful in day-to-day work. Downloads in current working directory, by
default, and allows cleanup
behaviour to be specified.
if (FALSE) {
# 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")
}