These functions use onetime_do()
to print a warning or message just
once.
Usage
onetime_warning(
...,
id = deprecate_calling_package(),
path = default_lockfile_dir(),
expiry = NULL,
without_permission = "warn"
)
onetime_message(
...,
id = deprecate_calling_package(),
path = default_lockfile_dir(),
expiry = NULL,
without_permission = "warn"
)
onetime_startup_message(
...,
id = deprecate_calling_package(),
path = default_lockfile_dir(),
expiry = NULL,
without_permission = "warn"
)
Arguments
- ...
Passed to
warning()
,message()
orpackageStartupMessage()
.- id
Unique ID string. If this is unset, the name of the calling package will be used. Since onetime 0.2.0, not setting
id
is deprecated.- path
Directory to store lockfiles. The default uses a unique directory corresponding to the calling package, beneath
rappdirs::user_config_dir()
. Normally you should leave this as the default.- expiry
difftime()
or e.g.lubridate::duration()
object. After this length of time, code will be run again.- without_permission
Character string. What to do if the user hasn't given permission to store files?
"warn"
runs the action with an extra warning;"run"
runs the action with no warning;"pass"
does nothing and returns the default;"stop"
throws an error;"ask"
asks for permission usingcheck_ok_to_store()
, and returns the default if it is not granted.
Examples
oo <- options(onetime.dir = tempdir(check = TRUE))
id <- sample(10000L, 1)
for (n in 1:3) {
onetime_warning("will be shown once", id = id)
}
#> Warning: will be shown once
onetime_reset(id = id)
options(oo)