terminal

Terminal output styling with intuitive, clean and easy API terminal tty terminal-ui
0.3.2 Latest release released

Terminal

Language Tag Build Status

Terminal output styling with intuitive, clean and easy API written by Crystal.

Installation

Add this to your application's shard.yml:

dependencies:
  terminal:
    github: icyleaf/terminal

Usage

UI

require "terminal"

# Usage for Shell UI
Terminal.message "hello world" # => "hello world"
Terminal.success "well done" # => "\e[32mwell done\e[0m"
Terminal.important "Your password is too easy" # => "\e[33mYour password is too easy\e[0m"
Terminal.error "Invaild username or password" # => "\e[31mInvaild username or password\e[0m"
Terminal.command "crystal version" # => "\e[36m$ crystal version\e[0m"

Methods

Full methods below:

method | level | description ---|---|--- header | INFO | normal default color with table border (Not compatible with emoji)
+-----+
|Install|
+-----+ message | INFO | normal default color success | INFO | green color important | WARN | yellow color error | ERROR | red color verbose | DEBUG | normal default color deprecated | WARN | blue with bold color command | INFO | cyan color command_output | INFO | magenta color crash! | Terminal::Crash | an exception by program itself user_error! | Terminal::UserError | an exception by user opertions shell_error! | Terminal::ShellError | an exception by run shell command

Shell command

require "terminal"

# Check command result
Terminal.test "crystal" # => true

# Run shell command
Terminal.sh "pwd"
$ pwd
▸ /Users/icyleaf

Enable/Disable color

Terminal.enable_color/Terminal.disable_color

Verbose mode

Set Enviroment TERMINAL_UI_SHOW_TIMESTAMP to 1/true

Terminal.success "Installed successful"
# => "INFO 2017-10-22 12:45:33 \e[32mInstalled successful\e[0m"

Adviances

All the output based on Logger, Here support one way to custom the given io and logger formatter.

io = IO::Memory.new
Terminal.ui_logger(io, Logger::Formatter.new { |severity, datetime, progname, message, io|
  io << "VERBOSE" << datetime.to_s("%F") << message
})

Terminal.message "Welcome to use terminal-ui"
# => "VERBOSE 2017-10-22 Welcome to use terminal-ui"

How to Contribute

Your contributions are always welcome! Please submit a pull request or create an issue to add a new question, bug or feature to the list.

All Contributors are on the wall.

You may also like

  • halite - HTTP Requests Client with a chainable REST API, built-in sessions and middlewares.
  • totem - Load and parse a configuration file or string in JSON, YAML, dotenv formats.
  • markd - Yet another markdown parser built for speed, Compliant to CommonMark specification.
  • poncho - A .env parser/loader improved for performance.
  • popcorn - Easy and Safe casting from one type to another.
  • fast-crystal - 💨 Writing Fast Crystal 😍 -- Collect Common Crystal idioms.

License

MIT License © icyleaf

terminal:
  github: icyleaf/terminal-ui.cr
  version: ~> 0.3.2
License MIT
Crystal 0.31.0

Authors

Dependencies 0

Development Dependencies 0

Dependents 1

Last synced .
search fire star recently