Domanda

Ho un semplice script di shell che costruisce i miei documenti Roxygen, costruisce il pacchetto, controlli, quindi installa il pacchetto di nuova costruzione sulla mia macchina. E 'abbastanza semplice:

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

Ma io sto avendo problemi con Roxygen raccogliendo la mia funzione .onLoad () come descritto in precedenza su StackOverflow . La soluzione è quella di utilizzare l'opzione di use.Rd2 = TRUE con roxygenize. Beh, io voglio costruire dal prompt dei comandi così ho cambiato questa linea

R CMD roxygen -d myPackage 

alla seguente linea che infila una linea roxygenize R attraverso la stdin:

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

Questo sembra per lavoro solo da dandy. Ma ci si sente un po 'contorto. C'è un modo più semplice e / o più elegante?

È stato utile?

Soluzione

faccio qualcosa di simile, ma io uso un documento qui in script di shell per farlo sembrare più pulita.

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

Il codice R è molto simile a quella nella corsa script durante R CMD roxygen.

Il roxygen che è installato sul mio sistema (versione 0.1; installata da CRAN questa settimana) non sembra supportare l'opzione -s di cui sopra ...

Altri suggerimenti

può essere l'opzione R CMD roxygen -s aiuterà qui. Credo che sia effettivamente la stessa impostazione use.Rd2=TRUE nella funzione roxygenize.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top