hr
is a utility for displaying a horizontal rule in a terminal.
It is useful for marking a position in your terminal so that you can easily
find it again. For example, use hr
to display a horizontal rule before each
build of a project so that you can easily find the beginning of the output of
the last build.
hr
has only been tested on Linux. It might work on Windows and macOS.
Check the Releases page for .deb
packages.
Check the Releases page for .rpm
packages.
Install hr
from Hackage using Cabal as follows:
$ cabal v2-install horizontal-rule
Install hr
from Stackage using Stack as follows:
$ stack install horizontal-rule
See the hr
man page for usage information.
The rule fills with width of the terminal by default:
$ hr
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
In cases when the terminal width cannot be determined, a default width is used. This default width can be set with an option:
$ hr -d 78
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
If desired, the rule width can be specified:
$ hr -w 60
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
In cases where the terminal cannot display Unicode, ASCII may be used:
$ hr -a
------------------------------------------------------------------------------
The rule can include the current time:
$ hr -t
━━┫2021-05-27 19:26:09┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The time format can be specified:
$ hr -t -f "%H:%M:%S.%q"
━━┫19:30:44.861779179000┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The first line read from STDIN
can be used as a note:
$ uname -m | hr -i
━━┫x86_64┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
When input is read, a timeout is used to ensure that hr
does not "hang" when
there is no input. The timeout (in milliseconds) can be specified:
$ uname -m | hr -i --timeout 100
━━┫x86_64┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A note can be specified as one or more arguments:
$ hr unit tests
━━┫unit tests┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Different types of notes can be combined:
$ uname -m | hr -it unit tests
━━┫2021-05-27 19:48:48┣━┫unit tests┣━┫x86_64┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
You can easily include horizontal rules in the output of your own Haskell
software by using the library. The Haskell package is named horizontal-rule
in Hackage and Stackage because there is an existing package named
hR
.
- Hackage: https://hackage.haskell.org/package/horizontal-rule
- Stackage: https://www.stackage.org/package/horizontal-rule
- Flora: https://flora.pm/packages/@hackage/horizontal-rule
- GitHub: https://github.com/ExtremaIS/hr-haskell
- GitHub Actions CI: https://github.com/ExtremaIS/hr-haskell/actions
The main
branch is reserved for releases. It may be considered stable, and
HEAD
is always the latest release.
The develop
branch is the primary development branch. It contains changes
that have not yet been released, and it is not necessarily stable.
Hackage revisions are made for metadata changes, such as relaxation of
constraints when new versions of dependencies are released. The
horizontal-rule.cabal
metadata in the main
branch may therefore not match
that of Hackage. The horizontal-rule.cabal
metadata in the develop
branch
may match, unless work is being done on a new release that contains other
changes.
All releases are tagged in the main
branch. Release tags are signed using
the security@extrema.is
GPG key.
Issues and feature requests are tracked on GitHub: https://github.com/ExtremaIS/hr-haskell/issues
Issues may also be submitted via email to bugs@extrema.is.
This project is released under the MIT License as specified in the
LICENSE
file.