Pregunta

Tengo un simple script de shell que se basa mis documentos Roxygen, construye el paquete, comprueba, a continuación, instala el paquete de nueva construcción en mi máquina. Es muy sencillo:

#! /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 

Pero estoy teniendo problemas con Roxygen recoger a mi función .onLoad () como se ha descrito anteriormente en StackOverflow . La solución es utilizar la use.Rd2 = opción TRUE con roxygenize. Bueno, yo quiero construir desde el símbolo del sistema así que cambié esta línea

R CMD roxygen -d myPackage 

a la línea siguiente, que empuja una línea roxygenize a R a través de la entrada estándar:

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

Este Parece para el trabajo dandy. Pero se siente un poco enrevesado. ¿Hay una manera más fácil y / o más elegante?

¿Fue útil?

Solución

He hecho algo similar, pero utilizo un documento aquí en el script de shell para que se vea más limpia.

#!/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

El código R es muy similar a la de la secuencia de comandos ejecutada durante R CMD roxygen.

El roxygen que está instalado en mi sistema (versión 0.1; instalado desde CRAN esta semana) no parece apoyar la opción -s mencionado anteriormente ...

Otros consejos

Puede ser la opción R CMD roxygen -s ayudará aquí. Creo que es efectivamente lo mismo que establecer use.Rd2=TRUE en la función roxygenize.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top