Skip to content

Commit 719bafd

Browse files
committed
Tweak update wrapper
1 parent 5f2d286 commit 719bafd

File tree

8 files changed

+43
-32
lines changed

8 files changed

+43
-32
lines changed

NAMESPACE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export(quarto_preview_stop)
1212
export(quarto_publish_app)
1313
export(quarto_publish_doc)
1414
export(quarto_publish_site)
15-
export(quarto_remove_extensions)
15+
export(quarto_remove_extension)
1616
export(quarto_render)
1717
export(quarto_serve)
1818
export(quarto_update_extension)

NEWS.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
- Add several new wrapper function:
44
- `quarto_list_extensions()` to list installed extensions using `quarto list extensions`
5-
- `quarto_remove_extensions()` to remove an installed extension using `quarto remove extensions`
5+
- `quarto_remove_extension()` to remove an installed extension using `quarto remove extensions`
6+
- `quarto_update_extension()` to update an installed extension using `quarto update extensions`
67

78
- `quarto_preview()` gains a `quiet` argument to suppress any output from R or Quarto CLI (thanks, @cwickham, #232.)
89

R/remove.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
#' @examples
1717
#' \dontrun{
1818
#' # Remove an already installed extension
19-
#' quarto_remove_extensions("quarto-ext/fontawesome")
19+
#' quarto_remove_extension("quarto-ext/fontawesome")
2020
#' }
2121
#' @export
22-
quarto_remove_extensions <- function(
22+
quarto_remove_extension <- function(
2323
extension = NULL,
2424
no_prompt = FALSE,
2525
quiet = FALSE,

R/update.R

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313
#'
1414
#' @inheritParams quarto_render
1515
#'
16-
#' @param extension The extension to update, either an archive or a GitHub
17-
#' repository as described in the documentation
18-
#' <https://quarto.org/docs/extensions/managing.html>.
16+
#' @param extension The extension to update, either by its name (i.e ` quarto update extension <gh-org>/<gh-repo>`), an archive (` quarto update extension <path-to-zip>`) or a url (`quarto update extension <url>`).
1917
#'
20-
#' @param no_prompt Do not prompt to confirm approval to download external extension.
18+
#' @param no_prompt Do not prompt to confirm approval to download external extension. Setting `no_prompt = FALSE` means [Extension Trust](#extension-trust) is accepted.
19+
#'
20+
#' @seealso [quarto_add_extension()], [quarto_remove_extension()], and [Quarto website](https://quarto.org/docs/extensions/managing.html).
21+
#'
22+
#' @return Returns invisibly `TRUE` if the extension was updated, `FALSE` otherwise.
2123
#'
2224
#' @examples
2325
#' \dontrun{
@@ -27,9 +29,6 @@
2729
#' # Update a template and set up a draft document from a ZIP archive
2830
#' quarto_update_extension("https://github.com/quarto-ext/fontawesome/archive/refs/heads/main.zip")
2931
#' }
30-
#'
31-
#' @importFrom rlang is_interactive
32-
#' @importFrom cli cli_abort
3332
#' @export
3433
quarto_update_extension <- function(
3534
extension = NULL,
@@ -44,16 +43,20 @@ quarto_update_extension <- function(
4443
# This will ask for approval or stop installation
4544
approval <- check_extension_approval(
4645
no_prompt,
47-
"Quarto extensions",
46+
"Quarto extension",
4847
"https://quarto.org/docs/extensions/managing.html"
4948
)
5049

51-
if (approval) {
52-
args <- c(extension, "--no-prompt", if (quiet) cli_arg_quiet(), quarto_args)
53-
quarto_update(args, quarto_bin = quarto_bin, echo = TRUE)
50+
if (!approval) {
51+
return(invisible(FALSE))
5452
}
5553

56-
invisible()
54+
args <- c(extension, "--no-prompt", if (quiet) cli_arg_quiet(), quarto_args)
55+
quarto_update(args, quarto_bin = quarto_bin, echo = TRUE)
56+
if (!quiet) {
57+
cli::cli_inform("Extension {.code {extension}} updated.")
58+
}
59+
invisible(TRUE)
5760
}
5861

5962
quarto_update <- function(args = character(), ...) {

man/quarto_remove_extensions.Rd renamed to man/quarto_remove_extension.Rd

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/quarto_update_extension.Rd

Lines changed: 8 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testthat/test-add.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ test_that("Installing an extension", {
33
skip_if_offline("github.com")
44
qmd <- local_qmd_file(c("content"))
55
withr::local_dir(dirname(qmd))
6+
rlang::local_interactive(FALSE)
67
expect_error(
78
quarto_add_extension("quarto-ext/fontawesome"),
89
"explicit approval"

tests/testthat/test-update.R

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,21 @@ test_that("Updating an extension", {
33
skip_if_offline("github.com")
44
qmd <- local_qmd_file(c("content"))
55
withr::local_dir(dirname(qmd))
6-
expect_error(
7-
quarto_add_extension("quarto-ext/[email protected]"),
8-
"explicit approval"
6+
quarto_add_extension(
7+
"quarto-ext/[email protected]",
8+
no_prompt = TRUE,
9+
quiet = TRUE
910
)
11+
expect_equal(quarto_list_extensions()$Version, "0.0.1")
1012
quarto_update_extension(
1113
"quarto-ext/fontawesome",
1214
no_prompt = TRUE,
1315
quiet = TRUE
1416
)
1517
expect_true(dir.exists("_extensions/quarto-ext/fontawesome"))
16-
current_version <- yaml::read_yaml(
17-
"_extensions/quarto-ext/fontawesome/_extension.yml"
18-
)$version
19-
expect_false(identical(current_version, "v0.0.1"))
18+
expect_true(
19+
as.numeric_version(current_version <- quarto_list_extensions()$Version) >
20+
"0.0.1"
21+
)
22+
expect_false(identical(current_version, "0.0.1"))
2023
})

0 commit comments

Comments
 (0)