From 2893509d4242e7e56107bbd53be7c232cbfb1862 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Sun, 4 May 2025 18:02:33 +0200 Subject: [PATCH] src/main.rs: add coloring --- Cargo.lock | 26 ++++++++++++++++++-------- Cargo.toml | 1 + src/main.rs | 34 ++++++++++++++++++++++++++++------ 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d4a3a77..bccf4ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -107,6 +107,15 @@ 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" @@ -125,6 +134,15 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "nnpdt" +version = "0.1.0" +dependencies = [ + "clap", + "colored", + "regex", +] + [[package]] name = "once_cell" version = "1.21.3" @@ -207,14 +225,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "version-diff" -version = "0.1.0" -dependencies = [ - "clap", - "regex", -] - [[package]] name = "windows-sys" version = "0.59.0" diff --git a/Cargo.toml b/Cargo.toml index ef27f8b..d4efa4c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,7 @@ edition = "2024" [dependencies] clap = { version = "4.5.37", features = ["derive"] } +colored = "3.0.0" regex = "1.11.1" [workspace.lints.clippy] diff --git a/src/main.rs b/src/main.rs index af50418..7bfca71 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use clap::Parser; +use colored::Colorize; use core::str; use regex::Regex; use std::{ @@ -64,23 +65,35 @@ fn main() { let removed: HashSet = &pre_keys - &post_keys; println!("Difference between the two generations:"); - println!("Packages added: "); + println!("{}", "Packages added:".underline().bold()); for p in added { let version = post.get(&p); if let Some(ver) = version { - println!("A: {p} @ {ver}"); + println!( + "{} {} {} {}", + "[A:]".green().bold(), + p, + "@".yellow().bold(), + ver.cyan() + ); } } println!(); - println!("Packages removed: "); + println!("{}", "Packages removed:".underline().bold()); for p in removed { let version = pre.get(&p); if let Some(ver) = version { - println!("R: {p} @ {ver}"); + println!( + "{} {} {} {}", + "[R:]".red().bold(), + p, + "@".yellow(), + ver.cyan() + ); } } println!(); - println!("Version changes: "); + println!("{}", "Version changes:".underline().bold()); for p in maybe_changed { if p.is_empty() { continue; @@ -90,7 +103,16 @@ fn main() { if let (Some(ver_pre), Some(ver_post)) = (version_pre, version_post) { if ver_pre != ver_post { - println!("C: {p} @ {ver_pre} -> {ver_post}"); + // println!("C: {p} @ {ver_pre} -> {ver_post}"); + println!( + "{} {} {} {} {} {}", + "[C:]".purple().bold(), + p, + "@".yellow(), + ver_pre.yellow(), + "~>".purple(), + ver_post.cyan() + ); } } }