构建 R 包时如何避免解析命令行参数?
How to avoid parsing command line arguments when building R package?
我正在开发一个包含命令行界面的 R 包。构建包时,我想避免解析命令行参数(构建标志),因为我的命令行参数解析器无法识别这些与构建相关的参数并产生错误。
为了解决这个问题,我目前正在使用一种方法,在尝试解析参数之前,我的构建标志被硬编码到 if 语句中:
if (length(commandArgs(trailingOnly = TRUE)) > 0 &&
!(grepl("--no-multiarch", commandArgs(trailingOnly = TRUE)))) {
argv <- GetCmdlineArguments()
DoStuff(argv$parsed.argument)
}
我还没有尝试过的另一种方法包括将参数解析放在不同的 R 文件中,该文件通过 .Rbuildignore
构建时会被忽略。然而,这会导致不利的情况,即每个具有命令行界面的 R 文件都需要一个额外的文件。
是否有更优雅、更可靠的方法来检测包是否正在构建而不是由用户从命令行实际执行?
我正在开发一个包含命令行界面的 R 包。构建包时,我想避免解析命令行参数(构建标志),因为我的命令行参数解析器无法识别这些与构建相关的参数并产生错误。
为了解决这个问题,我目前正在使用一种方法,在尝试解析参数之前,我的构建标志被硬编码到 if 语句中:
if (length(commandArgs(trailingOnly = TRUE)) > 0 &&
!(grepl("--no-multiarch", commandArgs(trailingOnly = TRUE)))) {
argv <- GetCmdlineArguments()
DoStuff(argv$parsed.argument)
}
我还没有尝试过的另一种方法包括将参数解析放在不同的 R 文件中,该文件通过 .Rbuildignore
构建时会被忽略。然而,这会导致不利的情况,即每个具有命令行界面的 R 文件都需要一个额外的文件。
是否有更优雅、更可靠的方法来检测包是否正在构建而不是由用户从命令行实际执行?