我想创建一个R软件包,在安装时显示维护者的联系信息,并要求用户在我们的安装列表中计算它们的权限.在用户第一次调用我们的一个函数时运行代码也是可以接受的,而不是立即安装.无论哪种方式,此消息应该只出现一次(除非用户重新安装/更新包).
我考虑过的:
有没有办法做到这一点?
这可以运行不止一次,但只能在有限的时间窗内运行,所以也许它已经足够好了.
将此代码添加到您的软件包中,它将在安装后7天内随时加载软件包时发出消息,之后在更新软件包之前不再发出消息.
它的工作原理是将创建安装文件的时间与当前时间进行比较.它不需要对任何目录的写权限,只需读取,因此它通常应该工作.
.onLoad <- function(libname, pkgname) {
ctime <- file.info(find.package(pkgname, libname))$ctime
if (difftime(Sys.time(), ctime, unit = "day") < 7)
packageStartupMessage("This msg will go away one week after installing this package")
}
Run Code Online (Sandbox Code Playgroud)