git: 70b256445cc6 - main - deskutils/pipecolor: New port: Terminal filter to colorize output

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 11 Mar 2024 20:10:47 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=70b256445cc61879522d2c98ea5c09b9a23ab3f9

commit 70b256445cc61879522d2c98ea5c09b9a23ab3f9
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-03-11 14:13:41 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-03-11 14:13:41 +0000

    deskutils/pipecolor: New port: Terminal filter to colorize output
---
 deskutils/Makefile            |   1 +
 deskutils/pipecolor/Makefile  | 129 +++++++++++++++++++++++++
 deskutils/pipecolor/distinfo  | 213 ++++++++++++++++++++++++++++++++++++++++++
 deskutils/pipecolor/pkg-descr |   6 ++
 4 files changed, 349 insertions(+)

diff --git a/deskutils/Makefile b/deskutils/Makefile
index ff4c70310d73..d7de039f7dc1 100644
--- a/deskutils/Makefile
+++ b/deskutils/Makefile
@@ -210,6 +210,7 @@
     SUBDIR += pim-data-exporter
     SUBDIR += pim-sieve-editor
     SUBDIR += pinot
+    SUBDIR += pipecolor
     SUBDIR += plan
     SUBDIR += plans
     SUBDIR += plasma5-milou
diff --git a/deskutils/pipecolor/Makefile b/deskutils/pipecolor/Makefile
new file mode 100644
index 000000000000..369fd2c7432e
--- /dev/null
+++ b/deskutils/pipecolor/Makefile
@@ -0,0 +1,129 @@
+PORTNAME=	pipecolor
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.4.4
+CATEGORIES=	deskutils
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Terminal filter to colorize output
+WWW=		https://github.com/dalance/pipecolor
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	dalance
+
+CARGO_CRATES=	aho-corasick-1.0.1 \
+		ansi_term-0.12.1 \
+		anyhow-1.0.71 \
+		atty-0.2.14 \
+		autocfg-1.1.0 \
+		bitflags-1.3.2 \
+		bytecount-0.6.3 \
+		camino-1.1.4 \
+		cargo-platform-0.1.2 \
+		cargo_metadata-0.14.2 \
+		cc-1.0.79 \
+		cfg-if-1.0.0 \
+		clap-2.34.0 \
+		dirs-5.0.1 \
+		dirs-sys-0.4.1 \
+		errno-0.3.1 \
+		errno-dragonfly-0.1.2 \
+		error-chain-0.12.4 \
+		fastrand-1.9.0 \
+		getrandom-0.2.9 \
+		glob-0.3.1 \
+		hashbrown-0.12.3 \
+		heck-0.3.3 \
+		hermit-abi-0.1.19 \
+		hermit-abi-0.3.1 \
+		indexmap-1.9.3 \
+		instant-0.1.12 \
+		io-lifetimes-1.0.10 \
+		itoa-1.0.6 \
+		lazy_static-1.4.0 \
+		libc-0.2.144 \
+		linux-raw-sys-0.3.7 \
+		memchr-2.5.0 \
+		memoffset-0.7.1 \
+		nix-0.26.2 \
+		numtoa-0.1.0 \
+		option-ext-0.2.0 \
+		pin-utils-0.1.0 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro2-1.0.57 \
+		proc-reader-0.5.1 \
+		pulldown-cmark-0.9.2 \
+		quote-1.0.27 \
+		redox_syscall-0.2.16 \
+		redox_syscall-0.3.5 \
+		redox_termios-0.1.2 \
+		redox_users-0.4.3 \
+		regex-1.8.1 \
+		regex-syntax-0.7.1 \
+		rustix-0.37.19 \
+		ryu-1.0.13 \
+		same-file-1.0.6 \
+		semver-1.0.17 \
+		serde-1.0.163 \
+		serde_derive-1.0.163 \
+		serde_json-1.0.96 \
+		serde_spanned-0.6.1 \
+		skeptic-0.13.7 \
+		static_assertions-1.1.0 \
+		strsim-0.8.0 \
+		structopt-0.3.26 \
+		structopt-derive-0.4.18 \
+		syn-1.0.109 \
+		syn-2.0.16 \
+		tempfile-3.5.0 \
+		termion-2.0.1 \
+		textwrap-0.11.0 \
+		thiserror-1.0.40 \
+		thiserror-impl-1.0.40 \
+		timeout-readwrite-0.3.3 \
+		toml-0.7.3 \
+		toml_datetime-0.6.1 \
+		toml_edit-0.19.8 \
+		unicase-2.6.0 \
+		unicode-ident-1.0.8 \
+		unicode-segmentation-1.10.1 \
+		unicode-width-0.1.10 \
+		vec_map-0.8.2 \
+		version_check-0.9.4 \
+		walkdir-2.3.3 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.5 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		windows-sys-0.45.0 \
+		windows-sys-0.48.0 \
+		windows-targets-0.42.2 \
+		windows-targets-0.48.0 \
+		windows_aarch64_gnullvm-0.42.2 \
+		windows_aarch64_gnullvm-0.48.0 \
+		windows_aarch64_msvc-0.42.2 \
+		windows_aarch64_msvc-0.48.0 \
+		windows_i686_gnu-0.42.2 \
+		windows_i686_gnu-0.48.0 \
+		windows_i686_msvc-0.42.2 \
+		windows_i686_msvc-0.48.0 \
+		windows_x86_64_gnu-0.42.2 \
+		windows_x86_64_gnu-0.48.0 \
+		windows_x86_64_gnullvm-0.42.2 \
+		windows_x86_64_gnullvm-0.48.0 \
+		windows_x86_64_msvc-0.42.2 \
+		windows_x86_64_msvc-0.48.0 \
+		winnow-0.4.6
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/deskutils/pipecolor/distinfo b/deskutils/pipecolor/distinfo
new file mode 100644
index 000000000000..b01171955bec
--- /dev/null
+++ b/deskutils/pipecolor/distinfo
@@ -0,0 +1,213 @@
+TIMESTAMP = 1710186604
+SHA256 (rust/crates/aho-corasick-1.0.1.crate) = 67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04
+SIZE (rust/crates/aho-corasick-1.0.1.crate) = 167320
+SHA256 (rust/crates/ansi_term-0.12.1.crate) = d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2
+SIZE (rust/crates/ansi_term-0.12.1.crate) = 24838
+SHA256 (rust/crates/anyhow-1.0.71.crate) = 9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8
+SIZE (rust/crates/anyhow-1.0.71.crate) = 43808
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bytecount-0.6.3.crate) = 2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c
+SIZE (rust/crates/bytecount-0.6.3.crate) = 12416
+SHA256 (rust/crates/camino-1.1.4.crate) = c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2
+SIZE (rust/crates/camino-1.1.4.crate) = 32290
+SHA256 (rust/crates/cargo-platform-0.1.2.crate) = cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27
+SIZE (rust/crates/cargo-platform-0.1.2.crate) = 11645
+SHA256 (rust/crates/cargo_metadata-0.14.2.crate) = 4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa
+SIZE (rust/crates/cargo_metadata-0.14.2.crate) = 17469
+SHA256 (rust/crates/cc-1.0.79.crate) = 50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f
+SIZE (rust/crates/cc-1.0.79.crate) = 62624
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/clap-2.34.0.crate) = a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c
+SIZE (rust/crates/clap-2.34.0.crate) = 202210
+SHA256 (rust/crates/dirs-5.0.1.crate) = 44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225
+SIZE (rust/crates/dirs-5.0.1.crate) = 12255
+SHA256 (rust/crates/dirs-sys-0.4.1.crate) = 520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c
+SIZE (rust/crates/dirs-sys-0.4.1.crate) = 10719
+SHA256 (rust/crates/errno-0.3.1.crate) = 4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a
+SIZE (rust/crates/errno-0.3.1.crate) = 10348
+SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf
+SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810
+SHA256 (rust/crates/error-chain-0.12.4.crate) = 2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc
+SIZE (rust/crates/error-chain-0.12.4.crate) = 29274
+SHA256 (rust/crates/fastrand-1.9.0.crate) = e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be
+SIZE (rust/crates/fastrand-1.9.0.crate) = 11910
+SHA256 (rust/crates/getrandom-0.2.9.crate) = c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4
+SIZE (rust/crates/getrandom-0.2.9.crate) = 34457
+SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b
+SIZE (rust/crates/glob-0.3.1.crate) = 18880
+SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
+SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
+SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c
+SIZE (rust/crates/heck-0.3.3.crate) = 10260
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/hermit-abi-0.3.1.crate) = fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286
+SIZE (rust/crates/hermit-abi-0.3.1.crate) = 13793
+SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99
+SIZE (rust/crates/indexmap-1.9.3.crate) = 54653
+SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
+SIZE (rust/crates/instant-0.1.12.crate) = 6128
+SHA256 (rust/crates/io-lifetimes-1.0.10.crate) = 9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220
+SIZE (rust/crates/io-lifetimes-1.0.10.crate) = 37294
+SHA256 (rust/crates/itoa-1.0.6.crate) = 453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6
+SIZE (rust/crates/itoa-1.0.6.crate) = 10410
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/libc-0.2.144.crate) = 2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1
+SIZE (rust/crates/libc-0.2.144.crate) = 682092
+SHA256 (rust/crates/linux-raw-sys-0.3.7.crate) = ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f
+SIZE (rust/crates/linux-raw-sys-0.3.7.crate) = 1013423
+SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
+SIZE (rust/crates/memchr-2.5.0.crate) = 65812
+SHA256 (rust/crates/memoffset-0.7.1.crate) = 5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4
+SIZE (rust/crates/memoffset-0.7.1.crate) = 8556
+SHA256 (rust/crates/nix-0.26.2.crate) = bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a
+SIZE (rust/crates/nix-0.26.2.crate) = 277973
+SHA256 (rust/crates/numtoa-0.1.0.crate) = b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef
+SIZE (rust/crates/numtoa-0.1.0.crate) = 8999
+SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d
+SIZE (rust/crates/option-ext-0.2.0.crate) = 7345
+SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
+SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c
+SIZE (rust/crates/proc-macro-error-1.0.4.crate) = 25293
+SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869
+SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971
+SHA256 (rust/crates/proc-macro2-1.0.57.crate) = c4ec6d5fe0b140acb27c9a0444118cf55bfbb4e0b259739429abb4521dd67c16
+SIZE (rust/crates/proc-macro2-1.0.57.crate) = 44506
+SHA256 (rust/crates/proc-reader-0.5.1.crate) = 9255d63dfb6f518d9e48e6d91860c513b75a0df536b8ea67d9fc735e6c72603d
+SIZE (rust/crates/proc-reader-0.5.1.crate) = 8452
+SHA256 (rust/crates/pulldown-cmark-0.9.2.crate) = 2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63
+SIZE (rust/crates/pulldown-cmark-0.9.2.crate) = 115824
+SHA256 (rust/crates/quote-1.0.27.crate) = 8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500
+SIZE (rust/crates/quote-1.0.27.crate) = 28416
+SHA256 (rust/crates/redox_syscall-0.2.16.crate) = fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a
+SIZE (rust/crates/redox_syscall-0.2.16.crate) = 24012
+SHA256 (rust/crates/redox_syscall-0.3.5.crate) = 567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29
+SIZE (rust/crates/redox_syscall-0.3.5.crate) = 23404
+SHA256 (rust/crates/redox_termios-0.1.2.crate) = 8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f
+SIZE (rust/crates/redox_termios-0.1.2.crate) = 3268
+SHA256 (rust/crates/redox_users-0.4.3.crate) = b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b
+SIZE (rust/crates/redox_users-0.4.3.crate) = 15353
+SHA256 (rust/crates/regex-1.8.1.crate) = af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370
+SIZE (rust/crates/regex-1.8.1.crate) = 248412
+SHA256 (rust/crates/regex-syntax-0.7.1.crate) = a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c
+SIZE (rust/crates/regex-syntax-0.7.1.crate) = 339705
+SHA256 (rust/crates/rustix-0.37.19.crate) = acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d
+SIZE (rust/crates/rustix-0.37.19.crate) = 323809
+SHA256 (rust/crates/ryu-1.0.13.crate) = f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041
+SIZE (rust/crates/ryu-1.0.13.crate) = 46823
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/semver-1.0.17.crate) = bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed
+SIZE (rust/crates/semver-1.0.17.crate) = 29685
+SHA256 (rust/crates/serde-1.0.163.crate) = 2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2
+SIZE (rust/crates/serde-1.0.163.crate) = 77030
+SHA256 (rust/crates/serde_derive-1.0.163.crate) = 8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e
+SIZE (rust/crates/serde_derive-1.0.163.crate) = 54447
+SHA256 (rust/crates/serde_json-1.0.96.crate) = 057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1
+SIZE (rust/crates/serde_json-1.0.96.crate) = 144652
+SHA256 (rust/crates/serde_spanned-0.6.1.crate) = 0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4
+SIZE (rust/crates/serde_spanned-0.6.1.crate) = 7828
+SHA256 (rust/crates/skeptic-0.13.7.crate) = 16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8
+SIZE (rust/crates/skeptic-0.13.7.crate) = 13108
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
+SHA256 (rust/crates/strsim-0.8.0.crate) = 8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a
+SIZE (rust/crates/strsim-0.8.0.crate) = 9309
+SHA256 (rust/crates/structopt-0.3.26.crate) = 0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10
+SIZE (rust/crates/structopt-0.3.26.crate) = 53798
+SHA256 (rust/crates/structopt-derive-0.4.18.crate) = dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0
+SIZE (rust/crates/structopt-derive-0.4.18.crate) = 20996
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.16.crate) = a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01
+SIZE (rust/crates/syn-2.0.16.crate) = 240928
+SHA256 (rust/crates/tempfile-3.5.0.crate) = b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998
+SIZE (rust/crates/tempfile-3.5.0.crate) = 31129
+SHA256 (rust/crates/termion-2.0.1.crate) = 659c1f379f3408c7e5e84c7d0da6d93404e3800b6b9d063ba24436419302ec90
+SIZE (rust/crates/termion-2.0.1.crate) = 23405
+SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060
+SIZE (rust/crates/textwrap-0.11.0.crate) = 17322
+SHA256 (rust/crates/thiserror-1.0.40.crate) = 978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac
+SIZE (rust/crates/thiserror-1.0.40.crate) = 18709
+SHA256 (rust/crates/thiserror-impl-1.0.40.crate) = f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f
+SIZE (rust/crates/thiserror-impl-1.0.40.crate) = 15138
+SHA256 (rust/crates/timeout-readwrite-0.3.3.crate) = 37312ddc0adbd0f112618a4250ac586448151ff6d69241ff061b29b883349f3e
+SIZE (rust/crates/timeout-readwrite-0.3.3.crate) = 10176
+SHA256 (rust/crates/toml-0.7.3.crate) = b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21
+SIZE (rust/crates/toml-0.7.3.crate) = 47227
+SHA256 (rust/crates/toml_datetime-0.6.1.crate) = 3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622
+SIZE (rust/crates/toml_datetime-0.6.1.crate) = 10765
+SHA256 (rust/crates/toml_edit-0.19.8.crate) = 239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13
+SIZE (rust/crates/toml_edit-0.19.8.crate) = 94457
+SHA256 (rust/crates/unicase-2.6.0.crate) = 50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6
+SIZE (rust/crates/unicase-2.6.0.crate) = 23478
+SHA256 (rust/crates/unicode-ident-1.0.8.crate) = e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4
+SIZE (rust/crates/unicode-ident-1.0.8.crate) = 41962
+SHA256 (rust/crates/unicode-segmentation-1.10.1.crate) = 1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36
+SIZE (rust/crates/unicode-segmentation-1.10.1.crate) = 98416
+SHA256 (rust/crates/unicode-width-0.1.10.crate) = c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b
+SIZE (rust/crates/unicode-width-0.1.10.crate) = 18968
+SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191
+SIZE (rust/crates/vec_map-0.8.2.crate) = 14466
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (rust/crates/walkdir-2.3.3.crate) = 36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698
+SIZE (rust/crates/walkdir-2.3.3.crate) = 23125
+SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
+SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
+SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/windows-sys-0.45.0.crate) = 75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0
+SIZE (rust/crates/windows-sys-0.45.0.crate) = 2568659
+SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
+SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884
+SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071
+SIZE (rust/crates/windows-targets-0.42.2.crate) = 5492
+SHA256 (rust/crates/windows-targets-0.48.0.crate) = 7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5
+SIZE (rust/crates/windows-targets-0.48.0.crate) = 7466
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8
+SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.0.crate) = 91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc
+SIZE (rust/crates/windows_aarch64_gnullvm-0.48.0.crate) = 366543
+SHA256 (rust/crates/windows_aarch64_msvc-0.42.2.crate) = e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43
+SIZE (rust/crates/windows_aarch64_msvc-0.42.2.crate) = 666981
+SHA256 (rust/crates/windows_aarch64_msvc-0.48.0.crate) = b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3
+SIZE (rust/crates/windows_aarch64_msvc-0.48.0.crate) = 671479
+SHA256 (rust/crates/windows_i686_gnu-0.42.2.crate) = c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f
+SIZE (rust/crates/windows_i686_gnu-0.42.2.crate) = 736236
+SHA256 (rust/crates/windows_i686_gnu-0.48.0.crate) = 622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241
+SIZE (rust/crates/windows_i686_gnu-0.48.0.crate) = 741490
+SHA256 (rust/crates/windows_i686_msvc-0.42.2.crate) = 44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060
+SIZE (rust/crates/windows_i686_msvc-0.42.2.crate) = 724951
+SHA256 (rust/crates/windows_i686_msvc-0.48.0.crate) = 4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00
+SIZE (rust/crates/windows_i686_msvc-0.48.0.crate) = 730056
+SHA256 (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36
+SIZE (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 699373
+SHA256 (rust/crates/windows_x86_64_gnu-0.48.0.crate) = ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1
+SIZE (rust/crates/windows_x86_64_gnu-0.48.0.crate) = 703595
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3
+SIZE (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 364068
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.0.crate) = 7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953
+SIZE (rust/crates/windows_x86_64_gnullvm-0.48.0.crate) = 366536
+SHA256 (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0
+SIZE (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 666936
+SHA256 (rust/crates/windows_x86_64_msvc-0.48.0.crate) = 1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a
+SIZE (rust/crates/windows_x86_64_msvc-0.48.0.crate) = 671422
+SHA256 (rust/crates/winnow-0.4.6.crate) = 61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699
+SIZE (rust/crates/winnow-0.4.6.crate) = 142565
+SHA256 (dalance-pipecolor-v0.4.4_GH0.tar.gz) = f6c3d1a45a708841d11cc065408e1815b4d671d467354840d0455be3acd96ced
+SIZE (dalance-pipecolor-v0.4.4_GH0.tar.gz) = 96618
diff --git a/deskutils/pipecolor/pkg-descr b/deskutils/pipecolor/pkg-descr
new file mode 100644
index 000000000000..1a6043d4c2d2
--- /dev/null
+++ b/deskutils/pipecolor/pkg-descr
@@ -0,0 +1,6 @@
+pipecolor is a terminal filter to colorize output.
+You can customize the colorize rule based on regular expressions.
+
+pipecolor receives input through the pipe, and colorizes the output.
+
+The colorize rule file is ~/.pipecolor.toml.