@hackage / byline

Library for creating command-line interfaces (colors, menus, etc.)

Latest1.1.3

About

Metadata

  • Last updated , by PeterJones
  • License BSD-2-Clause
  • Categories Systems Programming, GUI
  • Maintained by: Peter Jones <pjones@devalot.com>

  • Lottery factor: 1

Links

Installation

Package Flags

Use the -f option with cabal commands to enable flags

    build-examples (off by default)

    Build examples when building the library.

Readme

Byline

tests GitHub tag (latest by date) Hackage

Byline simplifies writing interactive command-line applications by building upon ansi-terminal and haskeline. This makes it possible to print messages and prompts that include terminal escape sequences such as colors that are automatically disabled when standard input is a file. It also means that Byline works on both POSIX-compatible systems and on Windows.

The primary features of Byline include printing messages, prompting for input, and generating custom menus. It was inspired by the highline Ruby library and the terminal library by Craig Roche.

Example Using MonadByline

example :: MonadByline m => m Text
example = do
  sayLn ("Hey, I like " <> ("Haskell" & fg magenta) <> "!")

  let question =
        "What's "
          <> ("your" & bold)
          <> " favorite "
          <> ("language" & fg green & underline)
          <> "? "

  askLn question (Just "Haskell")

Demo