Включите инструмент командной строки как часть пакета R - PullRequest
0 голосов
/ 01 августа 2020

При создании пакета Python вы можете создавать «команды», используя аргумент entry_points из setup (см. здесь ). Мне интересно, можно ли сделать то же самое при создании пакета R.

Например, после запуска

install.packages("mypackage")

было бы неплохо иметь возможность использовать

mypackage_clitool arg1 arg2

без использования Rscript. Возможно ли иметь такую ​​точку входа в пакете R?

Я нигде не мог найти ответ, но для справки, вот некоторые ресурсы, которые частично относятся к этому топу c:

Ответ о превращении CLI в пакет R - в обратном направлении

Учебное пособие, объясняющее, как запустить код R из командной строки, но не как установить CLI инструмент с пакетом R

Библиотека CLI - мне не удалось найти здесь никаких инструкций по установке через пакет

1 Ответ

0 голосов
/ 01 августа 2020

Вы можете писать сценарии и помещать их в каталог inst/scripts пакета; они будут установлены вместе с пакетом в scripts в каталоге пакета. Ваш скрипт может быть чем-то вроде этого примера из ?Rscript для Unix -ликов:

#! /path/to/Rscript --vanilla --default-packages=utils
args <- commandArgs(TRUE)
res <- try(install.packages(args))
if(inherits(res, "try-error")) q(status=1) else q()

На Windows, он должен иметь другой формат, потому что обычная оболочка там не поддержка сценариев #!.

Вы можете написать код, чтобы поместить каталог scripts (то есть результат system.file("scripts", package = "mypackage")) в PATH пользователя, но этого хватит только на текущий сеанс R, и будет видно только из команд, запущенных из R. Вы можете написать инструкции для пользователя, чтобы поместить его в PATH пользователя. Только последнее будет приемлемо в упаковке CRAN.

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