1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/source_url.r
\name{source_url}
\alias{source_url}
\title{Download an R file from a URL and source it}
\usage{
source_url(url, sha = NULL, ..., prompt = TRUE, quiet = FALSE)
}
\arguments{
\item{url}{The URL to download.}
\item{sha}{A SHA-1 hash of the file at the URL.}
\item{...}{Other arguments that are passed to \code{\link{source}()}.}
\item{prompt}{Prompt the user if no value for \code{sha} is provided.}
\item{quiet}{If \code{FALSE} (the default), print out status messages about
checking SHA.}
}
\description{
This will download a file and source it. Because it uses the
\code{\link{download}()} function, it can handle https URLs.
}
\details{
By default, \code{source_url()} checks the SHA-1 hash of the file. If it
differs from the expected value, it will throw an error. The default
expectation is that a hash is provided; if not, \code{source_url()} will
prompt the user, asking if they are sure they want to continue, unless
\code{prompt=FALSE} is used. In other words, if you use \code{prompt=FALSE},
it will run the remote code without checking the hash, and without asking
the user.
The purpose of checking the hash is to ensure that the file has not changed.
If a \code{source_url} command with a hash is posted in a public forum, then
others who source the URL (with the hash) are guaranteed to run the same
code every time. This means that the author doesn't need to worry about the
security of the server hosting the file. It also means that the users don't
have to worry about the file being replaced with a damaged or
maliciously-modified version.
To find the hash of a local file, use \code{\link{digest}()}. For a simple
way to find the hash of a remote file, use \code{\link{sha_url}()}.
}
\examples{
\dontrun{
# Source the a sample file
# This is a very long URL; break it up so it can be seen more easily in the
# examples.
test_url <- paste0("https://gist.github.com/wch/dae7c106ee99fe1fdfe7",
"/raw/db0c9bfe0de85d15c60b0b9bf22403c0f5e1fb15/test.r")
downloader::source_url(test_url,
sha = "9b8ff5213e32a871d6cb95cce0bed35c53307f61")
# Find the hash of a file
downloader::sha_url(test_url)
}
}
\seealso{
\code{\link{source}()} for more information on the arguments
that can be used with this function. The \code{\link{sha_url}()} function
can be used to find the SHA-1 hash of a remote file.
}
|