Frage

habe ich einen einfachen Shell-Skript, das meine Roxygen Dokumente baut, baut das Paket, Schecks, dann das neu gebaute Paket auf meinem Rechner installiert. Es ist ganz einfach:

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

Aber ich habe Probleme mit Roxygen meine .onLoad Aufnehmen () Funktion als zuvor auf Stackoverflow beschrieben. Die Lösung ist die use.Rd2 = TRUE Option mit roxygenize zu verwenden. Nun möchte ich von dem Befehl bauen Prompt so dass ich diese Zeile geändert

R CMD roxygen -d myPackage 

zu der folgenden Zeile, die eine Zeile roxygenize R durch die stdin schiebt:

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

Das scheint , um Arbeit nur Dandy. Aber es fühlt sich ein wenig gewunden. Gibt es einen einfacheren und / oder eleganteren Weg?

War es hilfreich?

Lösung

ich etwas ähnliches, aber ich benutze ein HIER Dokument in dem Shell-Skript, um es sauberer aussehen.

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

Der R-Code ist sehr ähnlich, die im Skript läuft während R CMD roxygen.

Die roxygen, die auf meinem System installiert ist, scheinen nicht die -s Option oben ...

erwähnt zu unterstützen (Version 0.1 installiert von CRAN in dieser Woche)

Andere Tipps

Auch die R CMD roxygen -s Option sein wird, hier helfen. Ich glaube, es ist das Gleiche wie use.Rd2=TRUE in der roxygenize Funktion zu setzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top