git: 2d39c58e8dc4 - main - textproc/difftastic: add port: Diff tool that compares files based on their syntax

From: Dmitry Marakasov <amdmi3_at_FreeBSD.org>
Date: Wed, 30 Mar 2022 20:20:36 UTC
The branch main has been updated by amdmi3:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2d39c58e8dc451cd4dfcc8879add3df5e782d326

commit 2d39c58e8dc451cd4dfcc8879add3df5e782d326
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2022-03-30 17:24:59 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2022-03-30 20:19:45 +0000

    textproc/difftastic: add port: Diff tool that compares files based on their syntax
    
    Difftastic is an experimental diff tool that compares files based
    on their syntax.
    
    WWW: https://difftastic.wilfred.me.uk/
    WWW: https://github.com/Wilfred/difftastic
---
 textproc/Makefile             |   1 +
 textproc/difftastic/Makefile  |  92 +++++++++++++++++++++++++++++
 textproc/difftastic/distinfo  | 131 ++++++++++++++++++++++++++++++++++++++++++
 textproc/difftastic/pkg-descr |   5 ++
 4 files changed, 229 insertions(+)

diff --git a/textproc/Makefile b/textproc/Makefile
index 24db1cd44931..d87f86b5caf0 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -135,6 +135,7 @@
     SUBDIR += diffmark
     SUBDIR += diffsplit
     SUBDIR += diffstat
+    SUBDIR += difftastic
     SUBDIR += diffutils
     SUBDIR += dikt
     SUBDIR += discount
diff --git a/textproc/difftastic/Makefile b/textproc/difftastic/Makefile
new file mode 100644
index 000000000000..cbce903152f2
--- /dev/null
+++ b/textproc/difftastic/Makefile
@@ -0,0 +1,92 @@
+PORTNAME=	difftastic
+DISTVERSION=	0.24.0
+CATEGORIES=	textproc
+
+MAINTAINER=	amdmi3@FreeBSD.org
+COMMENT=	Diff tool that compares files based on their syntax
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo cpe
+USE_GITHUB=	yes
+GH_ACCOUNT=	Wilfred
+
+PLIST_FILES=	bin/difft
+
+CARGO_CRATES=	aho-corasick-0.7.18 \
+		ansi_term-0.12.1 \
+		archery-0.4.0 \
+		atty-0.2.14 \
+		autocfg-1.0.1 \
+		bitflags-1.3.2 \
+		cc-1.0.72 \
+		cfg-if-1.0.0 \
+		clap-3.0.13 \
+		const_format-0.2.22 \
+		const_format_proc_macros-0.2.22 \
+		crossbeam-channel-0.5.1 \
+		crossbeam-deque-0.8.1 \
+		crossbeam-epoch-0.9.5 \
+		crossbeam-utils-0.8.7 \
+		ctor-0.1.21 \
+		diff-0.1.12 \
+		either-1.6.1 \
+		env_logger-0.7.1 \
+		hashbrown-0.11.2 \
+		hermit-abi-0.1.19 \
+		humantime-1.3.0 \
+		indexmap-1.8.0 \
+		itertools-0.10.3 \
+		lazy_static-1.4.0 \
+		libc-0.2.112 \
+		libmimalloc-sys-0.1.23 \
+		log-0.4.14 \
+		memchr-2.4.1 \
+		memoffset-0.6.5 \
+		mimalloc-0.1.27 \
+		num_cpus-1.13.1 \
+		os_str_bytes-6.0.0 \
+		output_vt100-0.1.2 \
+		owo-colors-3.2.0 \
+		pretty_assertions-1.0.0 \
+		pretty_env_logger-0.4.0 \
+		proc-macro2-1.0.36 \
+		quick-error-1.2.3 \
+		quote-1.0.13 \
+		radix-heap-0.4.2 \
+		rayon-1.5.1 \
+		rayon-core-1.9.1 \
+		regex-1.5.4 \
+		regex-syntax-0.6.25 \
+		rpds-0.11.0 \
+		rustc-hash-1.1.0 \
+		same-file-1.0.6 \
+		scopeguard-1.1.0 \
+		static_assertions-1.1.0 \
+		strsim-0.10.0 \
+		syn-1.0.84 \
+		term_size-0.3.2 \
+		termcolor-1.1.2 \
+		textwrap-0.14.2 \
+		tree-sitter-0.20.5 \
+		typed-arena-2.0.1 \
+		unicode-xid-0.2.2 \
+		walkdir-2.3.2 \
+		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 \
+		wu-diff-0.1.2
+
+PORTDOCS=	*
+
+OPTIONS_DEFINE=	DOCS
+
+post-install-DOCS-on:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}/
+	${INSTALL_DATA} ${WRKSRC}/CHANGELOG.md ${STAGEDIR}${DOCSDIR}/
+	@cd ${WRKSRC}/manual/src && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/manual
+
+.include <bsd.port.mk>
diff --git a/textproc/difftastic/distinfo b/textproc/difftastic/distinfo
new file mode 100644
index 000000000000..45fbe013dfd4
--- /dev/null
+++ b/textproc/difftastic/distinfo
@@ -0,0 +1,131 @@
+TIMESTAMP = 1648659968
+SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f
+SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923
+SHA256 (rust/crates/ansi_term-0.12.1.crate) = d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2
+SIZE (rust/crates/ansi_term-0.12.1.crate) = 24838
+SHA256 (rust/crates/archery-0.4.0.crate) = 0a8da9bc4c4053ee067669762bcaeea6e241841295a2b6c948312dad6ef4cc02
+SIZE (rust/crates/archery-0.4.0.crate) = 21265
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.0.1.crate) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a
+SIZE (rust/crates/autocfg-1.0.1.crate) = 12908
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/cc-1.0.72.crate) = 22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee
+SIZE (rust/crates/cc-1.0.72.crate) = 57495
+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.0.13.crate) = 08799f92c961c7a1cf0cc398a9073da99e21ce388b46372c37f3191f2f3eed3e
+SIZE (rust/crates/clap-3.0.13.crate) = 191249
+SHA256 (rust/crates/const_format-0.2.22.crate) = 22bc6cd49b0ec407b680c3e380182b6ac63b73991cb7602de350352fc309b614
+SIZE (rust/crates/const_format-0.2.22.crate) = 72234
+SHA256 (rust/crates/const_format_proc_macros-0.2.22.crate) = ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d
+SIZE (rust/crates/const_format_proc_macros-0.2.22.crate) = 24274
+SHA256 (rust/crates/crossbeam-channel-0.5.1.crate) = 06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4
+SIZE (rust/crates/crossbeam-channel-0.5.1.crate) = 86919
+SHA256 (rust/crates/crossbeam-deque-0.8.1.crate) = 6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e
+SIZE (rust/crates/crossbeam-deque-0.8.1.crate) = 20852
+SHA256 (rust/crates/crossbeam-epoch-0.9.5.crate) = 4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd
+SIZE (rust/crates/crossbeam-epoch-0.9.5.crate) = 43883
+SHA256 (rust/crates/crossbeam-utils-0.8.7.crate) = b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6
+SIZE (rust/crates/crossbeam-utils-0.8.7.crate) = 39751
+SHA256 (rust/crates/ctor-0.1.21.crate) = ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa
+SIZE (rust/crates/ctor-0.1.21.crate) = 9303
+SHA256 (rust/crates/diff-0.1.12.crate) = 0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499
+SIZE (rust/crates/diff-0.1.12.crate) = 10223
+SHA256 (rust/crates/either-1.6.1.crate) = e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457
+SIZE (rust/crates/either-1.6.1.crate) = 13641
+SHA256 (rust/crates/env_logger-0.7.1.crate) = 44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36
+SIZE (rust/crates/env_logger-0.7.1.crate) = 32281
+SHA256 (rust/crates/hashbrown-0.11.2.crate) = ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e
+SIZE (rust/crates/hashbrown-0.11.2.crate) = 85713
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/humantime-1.3.0.crate) = df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f
+SIZE (rust/crates/humantime-1.3.0.crate) = 17020
+SHA256 (rust/crates/indexmap-1.8.0.crate) = 282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223
+SIZE (rust/crates/indexmap-1.8.0.crate) = 52583
+SHA256 (rust/crates/itertools-0.10.3.crate) = a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3
+SIZE (rust/crates/itertools-0.10.3.crate) = 118661
+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.112.crate) = 1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125
+SIZE (rust/crates/libc-0.2.112.crate) = 571445
+SHA256 (rust/crates/libmimalloc-sys-0.1.23.crate) = 9636c194f9db483f4d0adf2f99a65011a99f904bd222bbd67fb4df4f37863c30
+SIZE (rust/crates/libmimalloc-sys-0.1.23.crate) = 913601
+SHA256 (rust/crates/log-0.4.14.crate) = 51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710
+SIZE (rust/crates/log-0.4.14.crate) = 34582
+SHA256 (rust/crates/memchr-2.4.1.crate) = 308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a
+SIZE (rust/crates/memchr-2.4.1.crate) = 64977
+SHA256 (rust/crates/memoffset-0.6.5.crate) = 5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce
+SIZE (rust/crates/memoffset-0.6.5.crate) = 7686
+SHA256 (rust/crates/mimalloc-0.1.27.crate) = cf5f78c1d9892fb5677a8b2f543f967ab891ac0f71feecd961435b74f877283a
+SIZE (rust/crates/mimalloc-0.1.27.crate) = 4968
+SHA256 (rust/crates/num_cpus-1.13.1.crate) = 19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1
+SIZE (rust/crates/num_cpus-1.13.1.crate) = 14752
+SHA256 (rust/crates/os_str_bytes-6.0.0.crate) = 8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64
+SIZE (rust/crates/os_str_bytes-6.0.0.crate) = 21046
+SHA256 (rust/crates/output_vt100-0.1.2.crate) = 53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9
+SIZE (rust/crates/output_vt100-0.1.2.crate) = 4062
+SHA256 (rust/crates/owo-colors-3.2.0.crate) = 20448fd678ec04e6ea15bbe0476874af65e98a01515d667aa49f1434dc44ebf4
+SIZE (rust/crates/owo-colors-3.2.0.crate) = 26928
+SHA256 (rust/crates/pretty_assertions-1.0.0.crate) = ec0cfe1b2403f172ba0f234e500906ee0a3e493fb81092dac23ebefe129301cc
+SIZE (rust/crates/pretty_assertions-1.0.0.crate) = 73836
+SHA256 (rust/crates/pretty_env_logger-0.4.0.crate) = 926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d
+SIZE (rust/crates/pretty_env_logger-0.4.0.crate) = 8690
+SHA256 (rust/crates/proc-macro2-1.0.36.crate) = c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029
+SIZE (rust/crates/proc-macro2-1.0.36.crate) = 41411
+SHA256 (rust/crates/quick-error-1.2.3.crate) = a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0
+SIZE (rust/crates/quick-error-1.2.3.crate) = 15066
+SHA256 (rust/crates/quote-1.0.13.crate) = 82fa34aad6be8c6fe936865499578c8a927795b167973e837c149af879fac2fd
+SIZE (rust/crates/quote-1.0.13.crate) = 28042
+SHA256 (rust/crates/radix-heap-0.4.2.crate) = 59ffec9df464013295b499298811e6a3de31bf8128092135826517db12dee601
+SIZE (rust/crates/radix-heap-0.4.2.crate) = 9323
+SHA256 (rust/crates/rayon-1.5.1.crate) = c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90
+SIZE (rust/crates/rayon-1.5.1.crate) = 160424
+SHA256 (rust/crates/rayon-core-1.9.1.crate) = d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e
+SIZE (rust/crates/rayon-core-1.9.1.crate) = 64961
+SHA256 (rust/crates/regex-1.5.4.crate) = d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461
+SIZE (rust/crates/regex-1.5.4.crate) = 236581
+SHA256 (rust/crates/regex-syntax-0.6.25.crate) = f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b
+SIZE (rust/crates/regex-syntax-0.6.25.crate) = 293293
+SHA256 (rust/crates/rpds-0.11.0.crate) = b4ef5140bcb576bfd6d56cd2de709a7d17851ac1f3805e67fe9d99e42a11821f
+SIZE (rust/crates/rpds-0.11.0.crate) = 67769
+SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
+SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
+SIZE (rust/crates/scopeguard-1.1.0.crate) = 11470
+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.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/syn-1.0.84.crate) = ecb2e6da8ee5eb9a61068762a32fa9619cc591ceb055b3687f4cd4051ec2e06b
+SIZE (rust/crates/syn-1.0.84.crate) = 235025
+SHA256 (rust/crates/term_size-0.3.2.crate) = 1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9
+SIZE (rust/crates/term_size-0.3.2.crate) = 10917
+SHA256 (rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4
+SIZE (rust/crates/termcolor-1.1.2.crate) = 17287
+SHA256 (rust/crates/textwrap-0.14.2.crate) = 0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80
+SIZE (rust/crates/textwrap-0.14.2.crate) = 52016
+SHA256 (rust/crates/tree-sitter-0.20.5.crate) = 9bd4f28f8febb994fca0bb3fd14360ac13cfc7d74d2a56d0f8e0d0e1c1ed7a1a
+SIZE (rust/crates/tree-sitter-0.20.5.crate) = 130915
+SHA256 (rust/crates/typed-arena-2.0.1.crate) = 0685c84d5d54d1c26f7d3eb96cd41550adb97baed141a761cf335d3d33bcd0ae
+SIZE (rust/crates/typed-arena-2.0.1.crate) = 11439
+SHA256 (rust/crates/unicode-xid-0.2.2.crate) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3
+SIZE (rust/crates/unicode-xid-0.2.2.crate) = 14955
+SHA256 (rust/crates/walkdir-2.3.2.crate) = 808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56
+SIZE (rust/crates/walkdir-2.3.2.crate) = 23516
+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/wu-diff-0.1.2.crate) = 8e3e6735fcde06432870db8dc9d7e3ab1b93727c14eaef329969426299f28893
+SIZE (rust/crates/wu-diff-0.1.2.crate) = 33439
+SHA256 (Wilfred-difftastic-0.24.0_GH0.tar.gz) = 195bc08b36132b4fea90942243dece209573f6123bd8c60dabaad869e7441489
+SIZE (Wilfred-difftastic-0.24.0_GH0.tar.gz) = 8461483
diff --git a/textproc/difftastic/pkg-descr b/textproc/difftastic/pkg-descr
new file mode 100644
index 000000000000..5646d331ee12
--- /dev/null
+++ b/textproc/difftastic/pkg-descr
@@ -0,0 +1,5 @@
+Difftastic is an experimental diff tool that compares files based
+on their syntax.
+
+WWW: https://difftastic.wilfred.me.uk/
+WWW: https://github.com/Wilfred/difftastic