Roxygen, создание пакета и использование.Rd2= TRUE

StackOverflow https://stackoverflow.com/questions/4380849

  •  09-10-2019
  •  | 
  •  

Вопрос

У меня есть простой сценарий оболочки, который создает мои документы 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 

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

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

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

Это было полезно?

Решение

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

#!/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 вариант, упомянутый выше...

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top