Learn R Programming

⚠️There's a newer version (0.7.2) of this package.Take me there.

docopt

docopt helps you to:

  • define an interface for your command-line app, and
  • automatically generate a parser for it.

For more information see docopt.org

R package docopt is an implementation of docopt in the R language. See my presentation on the useR! 2014 for more details.

Install

The latest version of docopt can be installed using:

library(devtools)  # make sure to have devtools 1.4!
install_github("docopt/docopt.R")

It is tested against the tests defined for the reference implementation. It passes most tests. It currently fails tests that

  • count arguments: my_prog.R -v -v should return list(v=2)

The tests can be run using devtools test() and can be found in "inst/tests"

Usage

docopt uses the description of the command-line interface to parse command line arguments.

'usage: my_prog.R [-a -r -m <msg>]

options:
 -a        Add
 -r        Remote
 -m <msg>  Message' -> doc

# load the docopt library
library(docopt)
# retrieve the command-line arguments
opts <- docopt(doc)
# what are the options? Note that stripped versions of the parameters are added to the returned list
str(opts)  
## List of 3
##  $ -a: logi FALSE
##  $ -r: logi FALSE
##  $ -m: chr "<msg>"
##  $ a: logi FALSE
##  $ r: logi FALSE
##  $ m: chr "<msg>"

# or set them manually
opts <- docopt(doc, "-m Hello")
str(opts)
## List of 3
##  $ -a: logi FALSE
##  $ -r: logi FALSE
##  $ -m: chr "Hello"
##  $ a: logi FALSE
##  $ r: logi FALSE
##  $ m: chr "Hello"

Note

There is an issue with using -g and -gui with docopt.R as reported on Stackoverflow. Rscript filters on -g and -gui before docopt.R can access them.

Copy Link

Version

Install

install.packages('docopt')

Monthly Downloads

8,610

Version

0.4.5

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Edwin Jonge

Last Published

June 13th, 2016

Functions in docopt (0.4.5)

[,Tokens-method

index tokens
docopt

Parse args based on command-line interface described in doc.
as.character,Pattern-method

as.character.Pattern
docopt-package

Docopt command line specification
[<-,Tokens-method

index tokens
as.character,Tokens-method

to character
[<-,Tokens-method

index tokens