Roxygen, сборка пакетов и использование.Rd2 = TRUE - PullRequest
4 голосов
/ 07 декабря 2010

У меня есть простой сценарий оболочки, который создает мои документы Roxygen, собирает пакет, проверяет, а затем устанавливает недавно созданный пакет на моем компьютере. Все довольно просто:

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

Но у меня возникли проблемы с тем, что Roxygen поднял мою функцию .onLoad () как , описанную ранее в StackOverflow . Решением является использование параметра use.Rd2 = TRUE с roxygenize. Ну, я хочу построить из командной строки, поэтому я изменил эту строку

R CMD roxygen -d myPackage 

до следующей строки, которая проталкивает линию окисления в R через стандартный ввод:

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

Этот , кажется, работает просто денди. Но это кажется немного запутанным. Есть ли более простой и / или более элегантный способ?

Ответы [ 2 ]

2 голосов
/ 24 декабря 2010

Я делаю нечто подобное, но я использую документ HERE в сценарии оболочки, чтобы он выглядел чище.

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

Код R очень похож на код в сценарии, выполняемом во время R CMD roxygen.

Установленный в моей системе roxygen (версия 0.1; установленный из CRAN на этой неделе), похоже, не поддерживает упомянутую выше опцию -s ...

2 голосов
/ 08 декабря 2010

Может быть, вариант R CMD roxygen -s поможет здесь.Я считаю, что это практически то же самое, что установка use.Rd2=TRUE в функции roxygenize.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...