git: 22b29e99c9f4 - main - devel/patsh: New port: Command-line tool for patching shell scripts inspired by resholve

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 05 Jan 2023 05:59:28 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=22b29e99c9f4a89086ef8e93fe21a92eb4508380

commit 22b29e99c9f4a89086ef8e93fe21a92eb4508380
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-05 05:40:53 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-05 05:59:17 +0000

    devel/patsh: New port: Command-line tool for patching shell scripts inspired by resholve
---
 devel/Makefile        |   1 +
 devel/patsh/Makefile  |  94 +++++++++++++++++++++++++++++++++
 devel/patsh/distinfo  | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++
 devel/patsh/pkg-descr |   1 +
 4 files changed, 239 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 5ff002141005..03a148e00717 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -3806,6 +3806,7 @@
     SUBDIR += pas2dox
     SUBDIR += pasm
     SUBDIR += patch
+    SUBDIR += patsh
     SUBDIR += pcc-libs
     SUBDIR += pcg-cpp
     SUBDIR += pcl
diff --git a/devel/patsh/Makefile b/devel/patsh/Makefile
new file mode 100644
index 000000000000..1f05cc86e827
--- /dev/null
+++ b/devel/patsh/Makefile
@@ -0,0 +1,94 @@
+PORTNAME=	patsh
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.2.0
+CATEGORIES=	devel
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Command-line tool for patching shell scripts inspired by resholve
+WWW=		https://github.com/nix-community/patsh
+
+LICENSE=	MPL20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	nix-community
+
+CARGO_CRATES=	aho-corasick-0.7.20 \
+		anyhow-1.0.66 \
+		assert_cmd-2.0.7 \
+		bitflags-1.3.2 \
+		bstr-1.0.1 \
+		cc-1.0.77 \
+		cfg-if-1.0.0 \
+		clap-4.0.29 \
+		clap_derive-4.0.21 \
+		clap_lex-0.3.0 \
+		difflib-0.4.0 \
+		dissimilar-1.0.4 \
+		doc-comment-0.3.3 \
+		either-1.8.0 \
+		errno-0.2.8 \
+		errno-dragonfly-0.1.2 \
+		expect-test-1.4.0 \
+		fastrand-1.8.0 \
+		heck-0.4.0 \
+		hermit-abi-0.2.6 \
+		instant-0.1.12 \
+		io-lifetimes-1.0.3 \
+		is-terminal-0.4.1 \
+		is_executable-1.0.1 \
+		itertools-0.10.5 \
+		libc-0.2.138 \
+		linux-raw-sys-0.1.3 \
+		memchr-2.5.0 \
+		once_cell-1.16.0 \
+		os_str_bytes-6.4.1 \
+		predicates-2.1.4 \
+		predicates-core-1.0.5 \
+		predicates-tree-1.0.7 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro2-1.0.47 \
+		quote-1.0.21 \
+		redox_syscall-0.2.16 \
+		regex-1.7.0 \
+		regex-automata-0.1.10 \
+		regex-syntax-0.6.28 \
+		remove_dir_all-0.5.3 \
+		rustix-0.36.4 \
+		serde-1.0.148 \
+		shell-escape-0.1.5 \
+		strsim-0.10.0 \
+		syn-1.0.105 \
+		tempfile-3.3.0 \
+		termcolor-1.1.3 \
+		terminal_size-0.2.3 \
+		termtree-0.4.0 \
+		tree-sitter-0.20.9 \
+		unicase-2.6.0 \
+		unicode-ident-1.0.5 \
+		unicode-width-0.1.10 \
+		version_check-0.9.4 \
+		wait-timeout-0.2.0 \
+		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.42.0 \
+		windows_aarch64_gnullvm-0.42.0 \
+		windows_aarch64_msvc-0.42.0 \
+		windows_i686_gnu-0.42.0 \
+		windows_i686_msvc-0.42.0 \
+		windows_x86_64_gnu-0.42.0 \
+		windows_x86_64_gnullvm-0.42.0 \
+		windows_x86_64_msvc-0.42.0 \
+		tree-sitter-bash@git+https://github.com/tree-sitter/tree-sitter-bash\#4488aa41406547e478636a4fcfd24f5bbc3f2f74
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/devel/patsh/distinfo b/devel/patsh/distinfo
new file mode 100644
index 000000000000..6e75f459beef
--- /dev/null
+++ b/devel/patsh/distinfo
@@ -0,0 +1,143 @@
+TIMESTAMP = 1672896759
+SHA256 (rust/crates/aho-corasick-0.7.20.crate) = cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac
+SIZE (rust/crates/aho-corasick-0.7.20.crate) = 111440
+SHA256 (rust/crates/anyhow-1.0.66.crate) = 216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6
+SIZE (rust/crates/anyhow-1.0.66.crate) = 43770
+SHA256 (rust/crates/assert_cmd-2.0.7.crate) = fa3d466004a8b4cb1bc34044240a2fd29d17607e2e3bd613eb44fd48e8100da3
+SIZE (rust/crates/assert_cmd-2.0.7.crate) = 23600
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bstr-1.0.1.crate) = fca0852af221f458706eb0725c03e4ed6c46af9ac98e6a689d5e634215d594dd
+SIZE (rust/crates/bstr-1.0.1.crate) = 340636
+SHA256 (rust/crates/cc-1.0.77.crate) = e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4
+SIZE (rust/crates/cc-1.0.77.crate) = 60723
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/clap-4.0.29.crate) = 4d63b9e9c07271b9957ad22c173bae2a4d9a81127680962039296abcd2f8251d
+SIZE (rust/crates/clap-4.0.29.crate) = 205982
+SHA256 (rust/crates/clap_derive-4.0.21.crate) = 0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014
+SIZE (rust/crates/clap_derive-4.0.21.crate) = 27567
+SHA256 (rust/crates/clap_lex-0.3.0.crate) = 0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8
+SIZE (rust/crates/clap_lex-0.3.0.crate) = 9671
+SHA256 (rust/crates/difflib-0.4.0.crate) = 6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8
+SIZE (rust/crates/difflib-0.4.0.crate) = 7638
+SHA256 (rust/crates/dissimilar-1.0.4.crate) = 8c97b9233581d84b8e1e689cdd3a47b6f69770084fc246e86a7f78b0d9c1d4a5
+SIZE (rust/crates/dissimilar-1.0.4.crate) = 28793
+SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10
+SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123
+SHA256 (rust/crates/either-1.8.0.crate) = 90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797
+SIZE (rust/crates/either-1.8.0.crate) = 15992
+SHA256 (rust/crates/errno-0.2.8.crate) = f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1
+SIZE (rust/crates/errno-0.2.8.crate) = 9276
+SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf
+SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810
+SHA256 (rust/crates/expect-test-1.4.0.crate) = 1d4661aca38d826eb7c72fe128e4238220616de4c0cc00db7bfc38e2e1364dd3
+SIZE (rust/crates/expect-test-1.4.0.crate) = 13484
+SHA256 (rust/crates/fastrand-1.8.0.crate) = a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499
+SIZE (rust/crates/fastrand-1.8.0.crate) = 11369
+SHA256 (rust/crates/heck-0.4.0.crate) = 2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9
+SIZE (rust/crates/heck-0.4.0.crate) = 11161
+SHA256 (rust/crates/hermit-abi-0.2.6.crate) = ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7
+SIZE (rust/crates/hermit-abi-0.2.6.crate) = 13027
+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.3.crate) = 46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c
+SIZE (rust/crates/io-lifetimes-1.0.3.crate) = 35650
+SHA256 (rust/crates/is-terminal-0.4.1.crate) = 927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330
+SIZE (rust/crates/is-terminal-0.4.1.crate) = 6892
+SHA256 (rust/crates/is_executable-1.0.1.crate) = fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8
+SIZE (rust/crates/is_executable-1.0.1.crate) = 9550
+SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
+SIZE (rust/crates/itertools-0.10.5.crate) = 115354
+SHA256 (rust/crates/libc-0.2.138.crate) = db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8
+SIZE (rust/crates/libc-0.2.138.crate) = 609081
+SHA256 (rust/crates/linux-raw-sys-0.1.3.crate) = 8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f
+SIZE (rust/crates/linux-raw-sys-0.1.3.crate) = 878488
+SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
+SIZE (rust/crates/memchr-2.5.0.crate) = 65812
+SHA256 (rust/crates/once_cell-1.16.0.crate) = 86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860
+SIZE (rust/crates/once_cell-1.16.0.crate) = 32120
+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/predicates-2.1.4.crate) = f54fc5dc63ed3bbf19494623db4f3af16842c0d975818e469022d09e53f0aa05
+SIZE (rust/crates/predicates-2.1.4.crate) = 24140
+SHA256 (rust/crates/predicates-core-1.0.5.crate) = 72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2
+SIZE (rust/crates/predicates-core-1.0.5.crate) = 7773
+SHA256 (rust/crates/predicates-tree-1.0.7.crate) = 54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d
+SIZE (rust/crates/predicates-tree-1.0.7.crate) = 8145
+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.47.crate) = 5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725
+SIZE (rust/crates/proc-macro2-1.0.47.crate) = 41955
+SHA256 (rust/crates/quote-1.0.21.crate) = bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179
+SIZE (rust/crates/quote-1.0.21.crate) = 28030
+SHA256 (rust/crates/redox_syscall-0.2.16.crate) = fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a
+SIZE (rust/crates/redox_syscall-0.2.16.crate) = 24012
+SHA256 (rust/crates/regex-1.7.0.crate) = e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a
+SIZE (rust/crates/regex-1.7.0.crate) = 239421
+SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
+SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
+SHA256 (rust/crates/regex-syntax-0.6.28.crate) = 456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848
+SIZE (rust/crates/regex-syntax-0.6.28.crate) = 299288
+SHA256 (rust/crates/remove_dir_all-0.5.3.crate) = 3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7
+SIZE (rust/crates/remove_dir_all-0.5.3.crate) = 9184
+SHA256 (rust/crates/rustix-0.36.4.crate) = cb93e85278e08bb5788653183213d3a60fc242b10cb9be96586f5a73dcb67c23
+SIZE (rust/crates/rustix-0.36.4.crate) = 287355
+SHA256 (rust/crates/serde-1.0.148.crate) = e53f64bb4ba0191d6d0676e1b141ca55047d83b74f5607e6d8eb88126c52c2dc
+SIZE (rust/crates/serde-1.0.148.crate) = 76637
+SHA256 (rust/crates/shell-escape-0.1.5.crate) = 45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f
+SIZE (rust/crates/shell-escape-0.1.5.crate) = 6847
+SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/syn-1.0.105.crate) = 60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908
+SIZE (rust/crates/syn-1.0.105.crate) = 237549
+SHA256 (rust/crates/tempfile-3.3.0.crate) = 5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4
+SIZE (rust/crates/tempfile-3.3.0.crate) = 27578
+SHA256 (rust/crates/termcolor-1.1.3.crate) = bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755
+SIZE (rust/crates/termcolor-1.1.3.crate) = 17242
+SHA256 (rust/crates/terminal_size-0.2.3.crate) = cb20089a8ba2b69debd491f8d2d023761cbf196e999218c591fa1e7e15a21907
+SIZE (rust/crates/terminal_size-0.2.3.crate) = 9361
+SHA256 (rust/crates/termtree-0.4.0.crate) = 95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8
+SIZE (rust/crates/termtree-0.4.0.crate) = 4449
+SHA256 (rust/crates/tree-sitter-0.20.9.crate) = d4423c784fe11398ca91e505cdc71356b07b1a924fc8735cfab5333afe3e18bc
+SIZE (rust/crates/tree-sitter-0.20.9.crate) = 132102
+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.5.crate) = 6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3
+SIZE (rust/crates/unicode-ident-1.0.5.crate) = 35455
+SHA256 (rust/crates/unicode-width-0.1.10.crate) = c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b
+SIZE (rust/crates/unicode-width-0.1.10.crate) = 18968
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (rust/crates/wait-timeout-0.2.0.crate) = 9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6
+SIZE (rust/crates/wait-timeout-0.2.0.crate) = 12441
+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.42.0.crate) = 5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7
+SIZE (rust/crates/windows-sys-0.42.0.crate) = 3006791
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.0.crate) = 41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e
+SIZE (rust/crates/windows_aarch64_gnullvm-0.42.0.crate) = 357917
+SHA256 (rust/crates/windows_aarch64_msvc-0.42.0.crate) = dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4
+SIZE (rust/crates/windows_aarch64_msvc-0.42.0.crate) = 659424
+SHA256 (rust/crates/windows_i686_gnu-0.42.0.crate) = fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7
+SIZE (rust/crates/windows_i686_gnu-0.42.0.crate) = 728570
+SHA256 (rust/crates/windows_i686_msvc-0.42.0.crate) = 84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246
+SIZE (rust/crates/windows_i686_msvc-0.42.0.crate) = 717477
+SHA256 (rust/crates/windows_x86_64_gnu-0.42.0.crate) = bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed
+SIZE (rust/crates/windows_x86_64_gnu-0.42.0.crate) = 692493
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.0.crate) = 09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028
+SIZE (rust/crates/windows_x86_64_gnullvm-0.42.0.crate) = 357906
+SHA256 (rust/crates/windows_x86_64_msvc-0.42.0.crate) = f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5
+SIZE (rust/crates/windows_x86_64_msvc-0.42.0.crate) = 659377
+SHA256 (tree-sitter-tree-sitter-bash-4488aa41406547e478636a4fcfd24f5bbc3f2f74_GH0.tar.gz) = e889ee51fad864b94015e939220d670727991b77e75008940e5b2a9886d8cc01
+SIZE (tree-sitter-tree-sitter-bash-4488aa41406547e478636a4fcfd24f5bbc3f2f74_GH0.tar.gz) = 204396
+SHA256 (nix-community-patsh-v0.2.0_GH0.tar.gz) = 00ccbdbd274035f3167cf04b5639edec96bb7e101cb1536b61fd4cbd3361c124
+SIZE (nix-community-patsh-v0.2.0_GH0.tar.gz) = 17974
diff --git a/devel/patsh/pkg-descr b/devel/patsh/pkg-descr
new file mode 100644
index 000000000000..efc373dc2a20
--- /dev/null
+++ b/devel/patsh/pkg-descr
@@ -0,0 +1 @@
+patsh is a command-line tool for patching shell scripts inspired by resholve.