R/status-bar.R
cli_process_start.Rd
Typically you call cli_process_start()
to start the process, and then
cli_process_done()
when it is done. If an error happens before
cli_process_done()
is called, then cli automatically shows the message
for unsuccessful termination.
cli_process_start( msg, msg_done = paste(msg, "... done"), msg_failed = paste(msg, "... failed"), on_exit = c("failed", "done"), msg_class = "alert-info", done_class = "alert-success", failed_class = "alert-danger", .auto_close = TRUE, .envir = parent.frame() ) cli_process_done( id = NULL, msg_done = NULL, .envir = parent.frame(), done_class = "alert-success" ) cli_process_failed( id = NULL, msg = NULL, msg_failed = NULL, .envir = parent.frame(), failed_class = "alert-danger" )
msg | The message to show to indicate the start of the process or
computation. It will be collapsed into a single string, and the first
line is kept and cut to |
---|---|
msg_done | The message to use for successful termination. |
msg_failed | The message to use for unsuccessful termination. |
on_exit | Whether this process should fail or terminate
successfully when the calling function (or the environment in |
msg_class | The style class to add to the message. Use an empty string to suppress styling. |
done_class | The style class to add to the successful termination message. Use an empty string to suppress styling.a |
failed_class | The style class to add to the unsuccessful termination message. Use an empty string to suppress styling.a |
.auto_close | Whether to clear the status bar when the calling function finishes (or ‘.envir’ is removed from the stack, if specified). |
.envir | Environment to evaluate the glue expressions in. It is
also used to auto-clear the status bar if |
id | Id of the status bar container to clear. If |
Id of the status bar container.
If you handle the errors of the process or computation, then you can do
the opposite: call cli_process_start()
with on_exit = "done"
, and
in the error handler call cli_process_failed()
. cli will automatically
call cli_process_done()
on successful termination, when the calling
function finishes.
See examples below.
Other status bar:
cli_status_clear()
,
cli_status_update()
,
cli_status()
## Failure by default fun <- function() { cli_process_start("Calculating") if (interactive()) Sys.sleep(1) if (runif(1) < 0.5) stop("Failed") cli_process_done() } tryCatch(fun(), error = function(err) err)#>#> ✔ Calculating ... done#>## Success by default fun2 <- function() { cli_process_start("Calculating", on_exit = "done") tryCatch({ if (interactive()) Sys.sleep(1) if (runif(1) < 0.5) stop("Failed") }, error = function(err) cli_process_failed()) } fun2()#> ℹ Calculating#> ✔ Calculating ... done#>