1
我正在開發包含命令行界面的R包。在構建包時,我想避免解析命令行參數(構建標誌),因爲我的命令行參數解析器不能識別這些與構建相關的參數併產生錯誤。如何在構建R包時避免分析命令行參數?
爲了解決這個問題,我目前使用的方法在我的構建標誌試圖解析參數之前硬編碼到一個if語句:
if (length(commandArgs(trailingOnly = TRUE)) > 0 &&
!(grepl("--no-multiarch", commandArgs(trailingOnly = TRUE)))) {
argv <- GetCmdlineArguments()
DoStuff(argv$parsed.argument)
}
我還沒有試驗過的另一種方法還包括將參數解析放在一個不同的R文件中,該文件通過.Rbuildignore
被構建忽略。但是,這會導致不利的情況,即每個具有命令行界面的R文件都需要額外的文件。
是否有更優雅和穩健的方式來檢測程序包是否正在構建,而不是從用戶的命令行實際執行?
謝謝。我已經在做幾乎相同了。我通過'Rscript'從Python程序中調用包的R腳本,被調用的R腳本通過['argparser'](https://cran.r-project.org/package=argparser)執行參數解析。總結一下,我應該將參數解析分離到位於'inst/scripts /'下的文件嗎? – tuomastik
在「inst/scripts /」下移動命令行參數解析解決了問題,並使一切變得清晰。非常感激。 – tuomastik