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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top