From 86f16c3042d9f8ba400512c8f2916c3a40e2d1f8 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Mon, 6 Jul 2020 12:42:11 +0800 Subject: =?UTF-8?q?for=20a=20moment=20I=20thought=20'colored'=20could=20be?= =?UTF-8?q?=20used,=20but=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …it's really allocation heavy. Something simpler might be it, what about termcolor? --- Cargo.lock | 12 ++++++++++++ Cargo.toml | 1 + src/aggregate.rs | 8 +++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 74d5f8b..68c0401 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -86,6 +86,17 @@ dependencies = [ "bitflags", ] +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi 0.3.9", +] + [[package]] name = "crossbeam" version = "0.7.3" @@ -219,6 +230,7 @@ dependencies = [ "anyhow", "atty", "byte-unit", + "colored", "crosstermion", "filesize", "flume", diff --git a/Cargo.toml b/Cargo.toml index 06e1a70..43bc451 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,6 +27,7 @@ filesize = "0.2.0" flume = {version = "0.7.1", default-features = false} anyhow = "1.0.31" crosstermion = { version = "0.1.3", default-features = false, features = ["tui-react-crossterm", "input-thread-flume"]} +colored = "1.9.3" [[bin]] name="dua" diff --git a/src/aggregate.rs b/src/aggregate.rs index d40a0cf..57103ac 100644 --- a/src/aggregate.rs +++ b/src/aggregate.rs @@ -1,5 +1,6 @@ use crate::{crossdev, InodeFilter, WalkOptions, WalkResult}; use anyhow::Result; +use colored::Colorize; use filesize::PathExt; use std::borrow::Cow; use std::{fmt, io, path::Path}; @@ -129,7 +130,12 @@ fn write_path( writeln!( out, "{byte_color}{:>byte_column_width$}{byte_color_reset} {path_color}{}{path_color_reset}{}", - options.byte_format.display(num_bytes).to_string(), // needed for formatting to work (unless we implement it ourselves) + options + .byte_format + .display(num_bytes) + .to_string() + .as_str() + .green(), // needed for formatting to work (unless we implement it ourselves) path.as_ref().display(), if num_errors == 0 { Cow::Borrowed("") -- cgit v1.2.3