This repository has been archived by the owner. It is now read-only.

terminal

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

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
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

Wed, 25 Dec 2024 20:21:41 GMT

Languages