Skip to content

Commit 0f0ad9d

Browse files
committed
pass headers to available.packages in bootstrap (#1942)
1 parent 80f6bef commit 0f0ad9d

File tree

3 files changed

+39
-4
lines changed

3 files changed

+39
-4
lines changed

NEWS.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11

22
# renv (development version)
33

4+
* `renv` now also passes any custom headers available to
5+
`utils::available.packages()` during bootstrap. (#1942)
6+
47
* Fixed an issue where `renv` could fail during installation of packages
58
stored within repository sub-directories, if that repository also
69
contained a top-level DESCRIPTION file. (#1941)

R/bootstrap.R

+18-2
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,11 @@ renv_bootstrap_download_impl <- function(url, destfile) {
207207
)
208208

209209
if ("headers" %in% names(formals(utils::download.file)))
210-
args$headers <- renv_bootstrap_download_custom_headers(url)
210+
{
211+
headers <- renv_bootstrap_download_custom_headers(url)
212+
if (length(headers) && is.character(headers))
213+
args$headers <- headers
214+
}
211215

212216
do.call(utils::download.file, args)
213217

@@ -286,10 +290,22 @@ renv_bootstrap_download_cran_latest_find <- function(version) {
286290
for (type in types) {
287291
for (repos in renv_bootstrap_repos()) {
288292

293+
# build arguments for utils::available.packages() call
294+
args <- list(type = type, repos = repos)
295+
296+
# add custom headers if available -- note that
297+
# utils::available.packages() will pass this to download.file()
298+
if ("headers" %in% names(formals(utils::download.file)))
299+
{
300+
headers <- renv_bootstrap_download_custom_headers(url)
301+
if (length(headers) && is.character(headers))
302+
args$headers <- headers
303+
}
304+
289305
# retrieve package database
290306
db <- tryCatch(
291307
as.data.frame(
292-
utils::available.packages(type = type, repos = repos),
308+
do.call(utils::available.packages, args),
293309
stringsAsFactors = FALSE
294310
),
295311
error = identity

inst/resources/activate.R

+18-2
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,11 @@ local({
306306
)
307307

308308
if ("headers" %in% names(formals(utils::download.file)))
309-
args$headers <- renv_bootstrap_download_custom_headers(url)
309+
{
310+
headers <- renv_bootstrap_download_custom_headers(url)
311+
if (length(headers) && is.character(headers))
312+
args$headers <- headers
313+
}
310314

311315
do.call(utils::download.file, args)
312316

@@ -385,10 +389,22 @@ local({
385389
for (type in types) {
386390
for (repos in renv_bootstrap_repos()) {
387391

392+
# build arguments for utils::available.packages() call
393+
args <- list(type = type, repos = repos)
394+
395+
# add custom headers if available -- note that
396+
# utils::available.packages() will pass this to download.file()
397+
if ("headers" %in% names(formals(utils::download.file)))
398+
{
399+
headers <- renv_bootstrap_download_custom_headers(url)
400+
if (length(headers) && is.character(headers))
401+
args$headers <- headers
402+
}
403+
388404
# retrieve package database
389405
db <- tryCatch(
390406
as.data.frame(
391-
utils::available.packages(type = type, repos = repos),
407+
do.call(utils::available.packages, args),
392408
stringsAsFactors = FALSE
393409
),
394410
error = identity

0 commit comments

Comments
 (0)