Roxygen, construction du paquet, et use.Rd2 = TRUE
Question
J'ai un simple script shell qui construit mes documents Roxygen, construit le paquet, chèques, installe ensuite le paquet nouvellement construit sur ma machine. Il est tout à fait simple:
#! /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
Mais je vais avoir des problèmes avec Roxygen ramasser ma fonction .onLoad () comme décrit précédemment sur StackOverflow. La solution est d'utiliser l'use.Rd2 = TRUE avec l'option roxygenize. Eh bien, je veux construire à partir de l'invite de commande alors j'ai changé cette ligne
R CMD roxygen -d myPackage
à la ligne suivante, qui pousse une ligne de roxygenize à R par l'intermédiaire du stdin:
echo 'require("roxygen"); roxygenize("myPackage", roxygen.dir="myPackage",
copy.package=FALSE, use.Rd2=TRUE)' | R --no-save < /dev/stdin
semble au travail dandy. Mais il se sent un peu alambiquée. Y at-il un moyen plus facile et / ou plus élégant?
La solution
Je fais quelque chose de similaire, mais j'utilise un document ICI dans le script shell pour le faire paraître plus propre.
#!/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
Le code R est très similaire à celui de l'exécution du script pendant R CMD roxygen
.
Le roxygen qui est installé sur mon système (version 0.1, installé de Cran cette semaine) ne semble pas soutenir l'option -s
mentionné ci-dessus ...
Autres conseils
Peut être l'option R CMD roxygen -s
aidera ici. Je crois qu'il est effectivement la même que la mise en use.Rd2=TRUE
dans la fonction roxygenize
.