This repository has been archived by the owner. It is now read-only.
terminal
Terminal
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 |
|
important | WARN |
|
error | ERROR |
|
verbose | DEBUG |
normal default color |
deprecated | WARN |
|
command | INFO |
|
command_output | INFO |
|
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
Repository
terminal
Owner
Statistic
- 9
- 0
- 0
- 0
- 0
- about 5 years ago
- October 22, 2017
License
MIT License
Links
Synced at
Fri, 22 Nov 2024 03:50:07 GMT
Languages