我有一个简单的外壳脚本,该脚本构建了我的roxygen文档,构建包装,检查,然后在我的计算机上安装新构建的软件包。很简单:

#! /bin/sh
R CMD roxygen -d myPackage 
R CMD build myPackage/
R CMD check myPackage_0.01.tar.gz
R CMD INSTALL myPackage myPackage_0.01.tar.gz 

但是我在roxygen拾取我的.onload()函数时遇到问题 先前在stackoverflow上描述. 。解决方案是使用use.rd2 = true选项与roxygygizize。好吧,我想从命令提示符构建,所以我更改了此行

R CMD roxygen -d myPackage 

到以下行,将roxygegygizy -gline线推到了通过stdin:

echo 'require("roxygen"); roxygenize("myPackage", roxygen.dir="myPackage",
   copy.package=FALSE, use.Rd2=TRUE)' | R --no-save < /dev/stdin

这个 似乎 工作只是花花公子。但是感觉有些令人费解。有一种更容易和/或更优雅的方式吗?

有帮助吗?

解决方案

我做类似的事情,但是我在Shell脚本中使用此处的文档使其看起来更干净。

#!/bin/sh
##
##
## Must be run from the parent of the package directory (no options
## to change target of check or tarball!?!)

PACKAGE="analyzeNMON"
VERSION=$(awk -F": +" '/^Version/ { print $2 }' ${PACKAGE}/DESCRIPTION)

R --no-restore --slave <<EOR
  library(roxygen)
  roxygenize(package.dir="${PACKAGE}",
             roxygen.dir="${PACKAGE}",
             use.Rd2=TRUE,
             overwrite=TRUE,
             copy.package=FALSE,
             unlink.target=FALSE)
EOR

R CMD build ${PACKAGE}
R CMD check ${PACKAGE}_${VERSION}.tar.gz
R CMD INSTALL ${PACKAGE}_${VERSION}.tar.gz

R代码与在脚本中运行的脚本非常相似 R CMD roxygen.

我的系统上安装的roxygen(版本0.1;本周从Cran安装)似乎不支持 -s 上面提到的选项...

其他提示

可能是 R CMD roxygen -s 选项将在这里有所帮助。我相信它实际上与设置相同 use.Rd2=TRUE 在里面 roxygenize 功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top