Skip to content

Commit 59b673b

Browse files
authored
Merge pull request #107 from LibraryCarpentry/update/packages
Update 4 packages
2 parents 2e9ebe0 + f286732 commit 59b673b

File tree

2 files changed

+105
-11
lines changed

2 files changed

+105
-11
lines changed

renv/activate.R

Lines changed: 94 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,66 @@ local({
9898
unloadNamespace("renv")
9999

100100
# load bootstrap tools
101+
ansify <- function(text) {
102+
if (renv_ansify_enabled())
103+
renv_ansify_enhanced(text)
104+
else
105+
renv_ansify_default(text)
106+
}
107+
108+
renv_ansify_enabled <- function() {
109+
110+
override <- Sys.getenv("RENV_ANSIFY_ENABLED", unset = NA)
111+
if (!is.na(override))
112+
return(as.logical(override))
113+
114+
pane <- Sys.getenv("RSTUDIO_CHILD_PROCESS_PANE", unset = NA)
115+
if (identical(pane, "build"))
116+
return(FALSE)
117+
118+
testthat <- Sys.getenv("TESTTHAT", unset = "false")
119+
if (tolower(testthat) %in% "true")
120+
return(FALSE)
121+
122+
iderun <- Sys.getenv("R_CLI_HAS_HYPERLINK_IDE_RUN", unset = "false")
123+
if (tolower(iderun) %in% "false")
124+
return(FALSE)
125+
126+
TRUE
127+
128+
}
129+
130+
renv_ansify_default <- function(text) {
131+
text
132+
}
133+
134+
renv_ansify_enhanced <- function(text) {
135+
136+
# R help links
137+
pattern <- "`\\?(renv::(?:[^`])+)`"
138+
replacement <- "`\033]8;;ide:help:\\1\a?\\1\033]8;;\a`"
139+
text <- gsub(pattern, replacement, text, perl = TRUE)
140+
141+
# runnable code
142+
pattern <- "`(renv::(?:[^`])+)`"
143+
replacement <- "`\033]8;;ide:run:\\1\a\\1\033]8;;\a`"
144+
text <- gsub(pattern, replacement, text, perl = TRUE)
145+
146+
# return ansified text
147+
text
148+
149+
}
150+
151+
renv_ansify_init <- function() {
152+
153+
envir <- renv_envir_self()
154+
if (renv_ansify_enabled())
155+
assign("ansify", renv_ansify_enhanced, envir = envir)
156+
else
157+
assign("ansify", renv_ansify_default, envir = envir)
158+
159+
}
160+
101161
`%||%` <- function(x, y) {
102162
if (is.null(x)) y else x
103163
}
@@ -142,7 +202,10 @@ local({
142202
# compute common indent
143203
indent <- regexpr("[^[:space:]]", lines)
144204
common <- min(setdiff(indent, -1L)) - leave
145-
paste(substring(lines, common), collapse = "\n")
205+
text <- paste(substring(lines, common), collapse = "\n")
206+
207+
# substitute in ANSI links for executable renv code
208+
ansify(text)
146209

147210
}
148211

@@ -305,8 +368,11 @@ local({
305368
quiet = TRUE
306369
)
307370

308-
if ("headers" %in% names(formals(utils::download.file)))
309-
args$headers <- renv_bootstrap_download_custom_headers(url)
371+
if ("headers" %in% names(formals(utils::download.file))) {
372+
headers <- renv_bootstrap_download_custom_headers(url)
373+
if (length(headers) && is.character(headers))
374+
args$headers <- headers
375+
}
310376

311377
do.call(utils::download.file, args)
312378

@@ -385,10 +451,21 @@ local({
385451
for (type in types) {
386452
for (repos in renv_bootstrap_repos()) {
387453

454+
# build arguments for utils::available.packages() call
455+
args <- list(type = type, repos = repos)
456+
457+
# add custom headers if available -- note that
458+
# utils::available.packages() will pass this to download.file()
459+
if ("headers" %in% names(formals(utils::download.file))) {
460+
headers <- renv_bootstrap_download_custom_headers(repos)
461+
if (length(headers) && is.character(headers))
462+
args$headers <- headers
463+
}
464+
388465
# retrieve package database
389466
db <- tryCatch(
390467
as.data.frame(
391-
utils::available.packages(type = type, repos = repos),
468+
do.call(utils::available.packages, args),
392469
stringsAsFactors = FALSE
393470
),
394471
error = identity
@@ -470,23 +547,31 @@ local({
470547

471548
}
472549

550+
renv_bootstrap_github_token <- function() {
551+
for (envvar in c("GITHUB_TOKEN", "GITHUB_PAT", "GH_TOKEN")) {
552+
envval <- Sys.getenv(envvar, unset = NA)
553+
if (!is.na(envval))
554+
return(envval)
555+
}
556+
}
557+
473558
renv_bootstrap_download_github <- function(version) {
474559

475560
enabled <- Sys.getenv("RENV_BOOTSTRAP_FROM_GITHUB", unset = "TRUE")
476561
if (!identical(enabled, "TRUE"))
477562
return(FALSE)
478563

479564
# prepare download options
480-
pat <- Sys.getenv("GITHUB_PAT")
481-
if (nzchar(Sys.which("curl")) && nzchar(pat)) {
565+
token <- renv_bootstrap_github_token()
566+
if (nzchar(Sys.which("curl")) && nzchar(token)) {
482567
fmt <- "--location --fail --header \"Authorization: token %s\""
483-
extra <- sprintf(fmt, pat)
568+
extra <- sprintf(fmt, token)
484569
saved <- options("download.file.method", "download.file.extra")
485570
options(download.file.method = "curl", download.file.extra = extra)
486571
on.exit(do.call(base::options, saved), add = TRUE)
487-
} else if (nzchar(Sys.which("wget")) && nzchar(pat)) {
572+
} else if (nzchar(Sys.which("wget")) && nzchar(token)) {
488573
fmt <- "--header=\"Authorization: token %s\""
489-
extra <- sprintf(fmt, pat)
574+
extra <- sprintf(fmt, token)
490575
saved <- options("download.file.method", "download.file.extra")
491576
options(download.file.method = "wget", download.file.extra = extra)
492577
on.exit(do.call(base::options, saved), add = TRUE)

renv/profiles/lesson-requirements/renv.lock

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@
759759
"Package": "lattice",
760760
"Version": "0.22-6",
761761
"Source": "Repository",
762-
"Repository": "CRAN",
762+
"Repository": "RSPM",
763763
"Requirements": [
764764
"R",
765765
"grDevices",
@@ -991,6 +991,9 @@
991991
"Version": "1.3.3",
992992
"Source": "Repository",
993993
"Repository": "https://carpentries.r-universe.dev",
994+
"RemoteUrl": "https://github.com/r-lib/ragg",
995+
"RemoteRef": "v1.3.3",
996+
"RemoteSha": "6f2279ae8cd0e0d7e9d0e1ede2b742666f9f1d49",
994997
"Requirements": [
995998
"systemfonts",
996999
"textshaping"
@@ -1195,7 +1198,7 @@
11951198
"Package": "stringi",
11961199
"Version": "1.8.4",
11971200
"Source": "Repository",
1198-
"Repository": "carpentries",
1201+
"Repository": "RSPM",
11991202
"Requirements": [
12001203
"R",
12011204
"stats",
@@ -1233,6 +1236,9 @@
12331236
"Version": "1.1.0",
12341237
"Source": "Repository",
12351238
"Repository": "https://carpentries.r-universe.dev",
1239+
"RemoteUrl": "https://github.com/r-lib/systemfonts",
1240+
"RemoteRef": "v1.1.0",
1241+
"RemoteSha": "78df90ca6d869feeb6a40c88f72269093505aa22",
12361242
"Requirements": [
12371243
"R",
12381244
"cpp11",
@@ -1483,6 +1489,9 @@
14831489
"Version": "1.3.6",
14841490
"Source": "Repository",
14851491
"Repository": "https://carpentries.r-universe.dev",
1492+
"RemoteUrl": "https://github.com/r-lib/xml2",
1493+
"RemoteRef": "v1.3.6",
1494+
"RemoteSha": "6a1b5e8fd44601faffcd5c56b6837bbf6ee41322",
14861495
"Requirements": [
14871496
"R",
14881497
"cli",

0 commit comments

Comments
 (0)