lscolors
lscolors copied to clipboard
A Rust library and tool to colorize paths using LS_COLORS
lscolors

A cross-platform library for colorizing paths according to the LS_COLORS
environment variable (like ls
).
Usage
use lscolors::{LsColors, Style};
let lscolors = LsColors::from_env().unwrap_or_default();
let path = "some/folder/test.tar.gz";
let style = lscolors.style_for_path(path);
// If you want to use `ansi_term`:
let ansi_style = style.map(Style::to_ansi_term_style)
.unwrap_or_default();
println!("{}", ansi_style.paint(path));
Command-line application
This crate also comes with a small command-line program lscolors
that
can be used to colorize the output of other commands:
> find . -maxdepth 2 | lscolors
> rg foo -l | lscolors
You can install it by running cargo install lscolors
or by downloading one
of the prebuilt binaries from the release page.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
References
Information about the LS_COLORS
environment variable is sparse. Here is a short list of useful references:
-
LS_COLORS
implementation in the GNU coreutils version ofls
(the reference implementation) -
LS_COLORS
implementation inbfs
by @tavianator -
The
DIR_COLORS(5)
man page