- Notifications
You must be signed in to change notification settings - Fork0
Tools for making beautiful & useful command line interfaces
License
davidchall/cli
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Helpers for Developing Command Line Interfaces
A suite of tools to build attractive command line interfaces (CLIs),from semantic elements: headers, lists, alerts, paragraphs, etc.Supports theming via a CSS-like language. It also contains a number oflower level CLI elements: rules, boxes, trees, and Unicode symbols withASCII alternatives. It supports ANSI markup for terminal colors and fontstyles.
- Build a CLI using semantic elements: headings, lists, alerts,paragraphs.
- Theming via a CSS-like language.
- Terminal colors and font styles.
- All cli text can contain interpreted string literals, via theglue package.
- Progress bars from R and C code.
- Error and warning messages with rich text formatting.
- Support for pluralized messages.
- ANSI styled string manipulation.
Install the stable version from CRAN:
install.packages("cli")Some of the more commonly used cli elements, and features.
One liner messages to inform or warn.
pkgs<- c("foo","bar","foobar")cli_alert_success("Downloaded {length(pkgs)} packages.")
db_url<-"example.com:port"cli_alert_info("Reopened database {.url {db_url}}.")
cli_alert_warning("Cannot reach GitHub, using local database cache.")cli_alert_danger("Failed to connect to database.")cli_alert("A generic alert")Three levels of headings.
cli_h1("Heading 1")cli_h2("Heading 2")cli_h3("Heading 3")Ordered, unordered and description lists, that can be nested.
fun<-function() { cli_ol() cli_li("Item 1")ulid<- cli_ul() cli_li("Subitem 1") cli_li("Subitem 2") cli_end(ulid) cli_li("Item 2") cli_end()}fun()
Theming via a CSS-like language.
fun<-function() { cli_div(theme=list(span.emph=list(color="orange"))) cli_text("This is very {.emph important}") cli_end() cli_text("Back to the {.emph previous theme}")}fun()
Automatic command substitution via theglue package.
size<-123143123dt<-1.3454cli_alert_info(c("Downloaded {prettyunits::pretty_bytes(size)} in","{prettyunits::pretty_sec(dt)}"))
Pluralization support.
nfiles<-3ndirs<-1cli_alert_info("Found {nfiles} file{?s} and {ndirs} director{?y/ies}.")
clean<-function() { cli_progress_bar("Cleaning data",total=100)for (iin1:100) { Sys.sleep(5/100) cli_progress_update() }}clean()
See athttps://cli.r-lib.org/and also in the installed package:help(package = "cli").
Please note that the cli project is released with aContributor Code ofConduct. Bycontributing to this project, you agree to abide by its terms.
MIT © RStudio
About
Tools for making beautiful & useful command line interfaces
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Languages
- R51.3%
- C48.6%
- Other0.1%