1
Fork 0
mirror of https://github.com/RGBCube/dix synced 2025-07-28 12:17:45 +00:00

switch to yansi

This commit is contained in:
Bloxx12 2025-05-04 23:45:12 +02:00
parent 470405b189
commit 65a8d85114
No known key found for this signature in database
3 changed files with 20 additions and 28 deletions

17
Cargo.lock generated
View file

@ -107,15 +107,6 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
[[package]]
name = "colored"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e"
dependencies = [
"windows-sys",
]
[[package]]
name = "heck"
version = "0.5.0"
@ -139,8 +130,8 @@ name = "nnpdt"
version = "0.1.0"
dependencies = [
"clap",
"colored",
"regex",
"yansi",
]
[[package]]
@ -297,3 +288,9 @@ name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "yansi"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"

View file

@ -5,5 +5,5 @@ edition = "2024"
[dependencies]
clap = { version = "4.5.37", features = ["derive"] }
colored = "3.0.0"
regex = "1.11.1"
yansi = "1.0.1"

View file

@ -1,5 +1,4 @@
use clap::Parser;
use colored::Colorize;
use core::str;
use regex::Regex;
use std::{
@ -8,6 +7,7 @@ use std::{
string::{String, ToString},
thread,
};
use yansi::Paint;
#[derive(Parser, Debug)]
#[command(name = "Nix not Python diff tool")]
@ -82,8 +82,8 @@ fn main() {
let removed: HashSet<&str> = &pre_keys - &post_keys;
println!("Difference between the two generations:");
println!();
print_added(&added, &post);
print_removed(&removed, &pre);
println!();
@ -185,13 +185,13 @@ fn print_added(set: &HashSet<&str>, post: &HashMap<&str, HashSet<&str>>) {
for p in set {
let posts = post.get(p);
if let Some(ver) = posts {
let version_str = ver.iter().copied().collect::<Vec<_>>().join(" ").cyan();
let version_str = ver.iter().copied().collect::<Vec<_>>().join(" ");
println!(
"{} {} {} {}",
"[A:]".green().bold(),
p,
"@".yellow().bold(),
version_str
version_str.blue().blink()
);
}
}
@ -201,13 +201,13 @@ fn print_removed(set: &HashSet<&str>, pre: &HashMap<&str, HashSet<&str>>) {
for p in set {
let pre = pre.get(p);
if let Some(ver) = pre {
let version_str = ver.iter().copied().collect::<Vec<_>>().join(" ").cyan();
let version_str = ver.iter().copied().collect::<Vec<_>>().join(" ");
println!(
"{} {} {} {}",
"[R:]".red().bold(),
p,
"@".yellow(),
version_str
version_str.blue().blink()
);
}
}
@ -226,23 +226,18 @@ fn print_changes(
// can not fail since maybe_changed is the union of the keys of pre and post
let ver_pre = pre.get(*p).unwrap();
let ver_post = post.get(*p).unwrap();
let version_str_pre = ver_pre.iter().copied().collect::<Vec<_>>().join(" ").cyan();
let version_str_post = ver_post
.iter()
.copied()
.collect::<Vec<_>>()
.join(" ")
.cyan();
let version_str_pre = ver_pre.iter().copied().collect::<Vec<_>>().join(" ");
let version_str_post = ver_post.iter().copied().collect::<Vec<_>>().join(", ");
if ver_pre != ver_post {
println!(
"{} {} {} {} {} {}",
"[C:]".purple().bold(),
"[C:]".bold().bright_yellow(),
p,
"@".yellow(),
version_str_pre.yellow(),
"~>".purple(),
version_str_post.cyan()
version_str_pre.magenta(),
"~>".magenta(),
version_str_post.blue().blink()
);
}
}