git: 38505be1a980 - main - sysutils/faketty: New port: Wrapper to exec a command in a pty, even if redirecting the output

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 01 Jan 2023 11:33:45 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=38505be1a9806cc753548d08be29f999340f2330

commit 38505be1a9806cc753548d08be29f999340f2330
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-01 10:35:33 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-01 10:35:33 +0000

    sysutils/faketty: New port: Wrapper to exec a command in a pty, even if redirecting the output
---
 sysutils/Makefile          |  1 +
 sysutils/faketty/Makefile  | 53 ++++++++++++++++++++++++++++++++++++++++
 sysutils/faketty/distinfo  | 61 ++++++++++++++++++++++++++++++++++++++++++++++
 sysutils/faketty/pkg-descr |  5 ++++
 4 files changed, 120 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index fa4b101f6938..1d79adbcf06d 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -363,6 +363,7 @@
     SUBDIR += f3
     SUBDIR += facter
     SUBDIR += fakertc
+    SUBDIR += faketty
     SUBDIR += fand
     SUBDIR += fanout
     SUBDIR += fatback
diff --git a/sysutils/faketty/Makefile b/sysutils/faketty/Makefile
new file mode 100644
index 000000000000..26aaa1f8f480
--- /dev/null
+++ b/sysutils/faketty/Makefile
@@ -0,0 +1,53 @@
+PORTNAME=	faketty
+DISTVERSION=	1.0.9
+CATEGORIES=	sysutils
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Wrapper to exec a command in a pty, even if redirecting the output
+WWW=		https://github.com/dtolnay/faketty
+
+LICENSE=	APACHE20 MIT
+LICENSE_COMB=	dual
+LICENSE_FILE_APACHE20=	${WRKSRC}/LICENSE-APACHE
+LICENSE_FILE_MIT=	${WRKSRC}/LICENSE-MIT
+
+USES=		cargo
+USE_GITHUB=	yes
+GH_ACCOUNT=	dtolnay
+
+CARGO_CRATES=	atty-0.2.14 \
+		autocfg-1.1.0 \
+		bitflags-1.3.2 \
+		cfg-if-1.0.0 \
+		clap-3.2.23 \
+		clap_derive-3.2.18 \
+		clap_lex-0.2.4 \
+		hashbrown-0.12.3 \
+		heck-0.4.0 \
+		hermit-abi-0.1.19 \
+		indexmap-1.9.2 \
+		libc-0.2.139 \
+		nix-0.25.1 \
+		os_str_bytes-6.4.1 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro2-1.0.49 \
+		quote-1.0.23 \
+		scratch-1.0.3 \
+		strsim-0.10.0 \
+		syn-1.0.107 \
+		termcolor-1.1.3 \
+		textwrap-0.16.0 \
+		unicode-ident-1.0.6 \
+		version_check-0.9.4 \
+		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
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/sysutils/faketty/distinfo b/sysutils/faketty/distinfo
new file mode 100644
index 000000000000..d6c216ac72cf
--- /dev/null
+++ b/sysutils/faketty/distinfo
@@ -0,0 +1,61 @@
+TIMESTAMP = 1672568591
+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/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/clap-3.2.23.crate) = 71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5
+SIZE (rust/crates/clap-3.2.23.crate) = 219435
+SHA256 (rust/crates/clap_derive-3.2.18.crate) = ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65
+SIZE (rust/crates/clap_derive-3.2.18.crate) = 28208
+SHA256 (rust/crates/clap_lex-0.2.4.crate) = 2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5
+SIZE (rust/crates/clap_lex-0.2.4.crate) = 9652
+SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
+SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
+SHA256 (rust/crates/heck-0.4.0.crate) = 2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9
+SIZE (rust/crates/heck-0.4.0.crate) = 11161
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/indexmap-1.9.2.crate) = 1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399
+SIZE (rust/crates/indexmap-1.9.2.crate) = 54627
+SHA256 (rust/crates/libc-0.2.139.crate) = 201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79
+SIZE (rust/crates/libc-0.2.139.crate) = 638983
+SHA256 (rust/crates/nix-0.25.1.crate) = f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4
+SIZE (rust/crates/nix-0.25.1.crate) = 272312
+SHA256 (rust/crates/os_str_bytes-6.4.1.crate) = 9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee
+SIZE (rust/crates/os_str_bytes-6.4.1.crate) = 23101
+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.49.crate) = 57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5
+SIZE (rust/crates/proc-macro2-1.0.49.crate) = 41977
+SHA256 (rust/crates/quote-1.0.23.crate) = 8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b
+SIZE (rust/crates/quote-1.0.23.crate) = 28058
+SHA256 (rust/crates/scratch-1.0.3.crate) = ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2
+SIZE (rust/crates/scratch-1.0.3.crate) = 8198
+SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/syn-1.0.107.crate) = 1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5
+SIZE (rust/crates/syn-1.0.107.crate) = 237539
+SHA256 (rust/crates/termcolor-1.1.3.crate) = bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755
+SIZE (rust/crates/termcolor-1.1.3.crate) = 17242
+SHA256 (rust/crates/textwrap-0.16.0.crate) = 222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d
+SIZE (rust/crates/textwrap-0.16.0.crate) = 53722
+SHA256 (rust/crates/unicode-ident-1.0.6.crate) = 84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc
+SIZE (rust/crates/unicode-ident-1.0.6.crate) = 42158
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+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 (dtolnay-faketty-1.0.9_GH0.tar.gz) = 7ea80b2d0de6c587119a4f4d22c4b60321bf33d2bc963ad99584543af82dbd15
+SIZE (dtolnay-faketty-1.0.9_GH0.tar.gz) = 8413
diff --git a/sysutils/faketty/pkg-descr b/sysutils/faketty/pkg-descr
new file mode 100644
index 000000000000..03dd22f891a2
--- /dev/null
+++ b/sysutils/faketty/pkg-descr
@@ -0,0 +1,5 @@
+A wrapper binary to exec a command in a pty, even if redirecting the output.
+
+This allows logging the stdout and stderr (separately) of a process, without
+the output being different from what you'd see in the terminal if you weren't
+logging anything.