git: ed1b7a549cc8 - main - sysutils/async: New port: Tool to parallelize shell commands

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 03 Jan 2023 00:37:24 UTC
The branch main has been updated by yuri:

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

commit ed1b7a549cc83b67c572f28ff00364bdc539aa11
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-02 23:15:48 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-03 00:37:14 +0000

    sysutils/async: New port: Tool to parallelize shell commands
---
 sysutils/Makefile        |  1 +
 sysutils/async/Makefile  | 71 +++++++++++++++++++++++++++++++++++
 sysutils/async/distinfo  | 97 ++++++++++++++++++++++++++++++++++++++++++++++++
 sysutils/async/pkg-descr |  5 +++
 4 files changed, 174 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index a9dd96cccd9c..be6eed196c13 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -62,6 +62,7 @@
     SUBDIR += asmctl
     SUBDIR += asmem
     SUBDIR += asusoled
+    SUBDIR += async
     SUBDIR += atf-fvp
     SUBDIR += atf-master
     SUBDIR += atf-rk3328
diff --git a/sysutils/async/Makefile b/sysutils/async/Makefile
new file mode 100644
index 000000000000..9c096348d968
--- /dev/null
+++ b/sysutils/async/Makefile
@@ -0,0 +1,71 @@
+PORTNAME=	async
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1.1
+CATEGORIES=	sysutils
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Tool to parallelize shell commands
+WWW=		https://github.com/ctbur/async
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	ctbur
+
+CARGO_CRATES=	aho-corasick-0.7.3 \
+		ansi_term-0.11.0 \
+		atty-0.2.11 \
+		autocfg-0.1.4 \
+		bincode-1.1.4 \
+		bitflags-1.1.0 \
+		byteorder-1.3.2 \
+		cfg-if-0.1.9 \
+		clap-2.33.0 \
+		env_logger-0.6.1 \
+		heck-0.3.1 \
+		humantime-1.2.0 \
+		lazy_static-1.3.0 \
+		libc-0.2.58 \
+		log-0.4.6 \
+		memchr-2.2.0 \
+		num_cpus-1.10.1 \
+		numtoa-0.1.0 \
+		proc-macro2-0.4.30 \
+		quick-error-1.2.2 \
+		quote-0.6.12 \
+		redox_syscall-0.1.54 \
+		redox_termios-0.1.1 \
+		regex-1.1.7 \
+		regex-syntax-0.6.7 \
+		serde-1.0.92 \
+		serde_derive-1.0.92 \
+		strsim-0.8.0 \
+		structopt-0.2.16 \
+		structopt-derive-0.2.16 \
+		syn-0.15.36 \
+		termcolor-1.0.5 \
+		termion-1.5.3 \
+		textwrap-0.11.0 \
+		thread_local-0.3.6 \
+		threadpool-1.7.1 \
+		ucd-util-0.1.3 \
+		unicode-segmentation-1.3.0 \
+		unicode-width-0.1.5 \
+		unicode-xid-0.1.0 \
+		utf8-ranges-1.0.3 \
+		vec_map-0.8.1 \
+		winapi-0.3.7 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.2 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		wincolor-1.0.1
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/sysutils/async/distinfo b/sysutils/async/distinfo
new file mode 100644
index 000000000000..b8a8cf01db0b
--- /dev/null
+++ b/sysutils/async/distinfo
@@ -0,0 +1,97 @@
+TIMESTAMP = 1672700842
+SHA256 (rust/crates/aho-corasick-0.7.3.crate) = e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c
+SIZE (rust/crates/aho-corasick-0.7.3.crate) = 55093
+SHA256 (rust/crates/ansi_term-0.11.0.crate) = ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b
+SIZE (rust/crates/ansi_term-0.11.0.crate) = 17087
+SHA256 (rust/crates/atty-0.2.11.crate) = 9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652
+SIZE (rust/crates/atty-0.2.11.crate) = 5916
+SHA256 (rust/crates/autocfg-0.1.4.crate) = 0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf
+SIZE (rust/crates/autocfg-0.1.4.crate) = 10937
+SHA256 (rust/crates/bincode-1.1.4.crate) = 9f04a5e50dc80b3d5d35320889053637d15011aed5e66b66b37ae798c65da6f7
+SIZE (rust/crates/bincode-1.1.4.crate) = 14412
+SHA256 (rust/crates/bitflags-1.1.0.crate) = 3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd
+SIZE (rust/crates/bitflags-1.1.0.crate) = 16322
+SHA256 (rust/crates/byteorder-1.3.2.crate) = a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5
+SIZE (rust/crates/byteorder-1.3.2.crate) = 21596
+SHA256 (rust/crates/cfg-if-0.1.9.crate) = b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33
+SIZE (rust/crates/cfg-if-0.1.9.crate) = 7353
+SHA256 (rust/crates/clap-2.33.0.crate) = 5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9
+SIZE (rust/crates/clap-2.33.0.crate) = 196458
+SHA256 (rust/crates/env_logger-0.6.1.crate) = b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a
+SIZE (rust/crates/env_logger-0.6.1.crate) = 28567
+SHA256 (rust/crates/heck-0.3.1.crate) = 20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205
+SIZE (rust/crates/heck-0.3.1.crate) = 54666
+SHA256 (rust/crates/humantime-1.2.0.crate) = 3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114
+SIZE (rust/crates/humantime-1.2.0.crate) = 16795
+SHA256 (rust/crates/lazy_static-1.3.0.crate) = bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14
+SIZE (rust/crates/lazy_static-1.3.0.crate) = 10616
+SHA256 (rust/crates/libc-0.2.58.crate) = 6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319
+SIZE (rust/crates/libc-0.2.58.crate) = 409031
+SHA256 (rust/crates/log-0.4.6.crate) = c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6
+SIZE (rust/crates/log-0.4.6.crate) = 22303
+SHA256 (rust/crates/memchr-2.2.0.crate) = 2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39
+SIZE (rust/crates/memchr-2.2.0.crate) = 20939
+SHA256 (rust/crates/num_cpus-1.10.1.crate) = bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273
+SIZE (rust/crates/num_cpus-1.10.1.crate) = 11151
+SHA256 (rust/crates/numtoa-0.1.0.crate) = b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef
+SIZE (rust/crates/numtoa-0.1.0.crate) = 8999
+SHA256 (rust/crates/proc-macro2-0.4.30.crate) = cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759
+SIZE (rust/crates/proc-macro2-0.4.30.crate) = 34731
+SHA256 (rust/crates/quick-error-1.2.2.crate) = 9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0
+SIZE (rust/crates/quick-error-1.2.2.crate) = 15132
+SHA256 (rust/crates/quote-0.6.12.crate) = faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db
+SIZE (rust/crates/quote-0.6.12.crate) = 17541
+SHA256 (rust/crates/redox_syscall-0.1.54.crate) = 12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252
+SIZE (rust/crates/redox_syscall-0.1.54.crate) = 15668
+SHA256 (rust/crates/redox_termios-0.1.1.crate) = 7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76
+SIZE (rust/crates/redox_termios-0.1.1.crate) = 3227
+SHA256 (rust/crates/regex-1.1.7.crate) = 0b2f0808e7d7e4fb1cb07feb6ff2f4bc827938f24f8c2e6a3beb7370af544bdd
+SIZE (rust/crates/regex-1.1.7.crate) = 243534
+SHA256 (rust/crates/regex-syntax-0.6.7.crate) = 9d76410686f9e3a17f06128962e0ecc5755870bb890c34820c7af7f1db2e1d48
+SIZE (rust/crates/regex-syntax-0.6.7.crate) = 273104
+SHA256 (rust/crates/serde-1.0.92.crate) = 32746bf0f26eab52f06af0d0aa1984f641341d06d8d673c693871da2d188c9be
+SIZE (rust/crates/serde-1.0.92.crate) = 71689
+SHA256 (rust/crates/serde_derive-1.0.92.crate) = 46a3223d0c9ba936b61c0d2e3e559e3217dbfb8d65d06d26e8b3c25de38bae3e
+SIZE (rust/crates/serde_derive-1.0.92.crate) = 48814
+SHA256 (rust/crates/strsim-0.8.0.crate) = 8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a
+SIZE (rust/crates/strsim-0.8.0.crate) = 9309
+SHA256 (rust/crates/structopt-0.2.16.crate) = fa19a5a708e22bb5be31c1b6108a2a902f909c4b9ba85cba44c06632386bc0ff
+SIZE (rust/crates/structopt-0.2.16.crate) = 26165
+SHA256 (rust/crates/structopt-derive-0.2.16.crate) = c6d59d0ae8ef8de16e49e3ca7afa16024a3e0dfd974a75ef93fdc5464e34523f
+SIZE (rust/crates/structopt-derive-0.2.16.crate) = 12951
+SHA256 (rust/crates/syn-0.15.36.crate) = 8b4f551a91e2e3848aeef8751d0d4eec9489b6474c720fd4c55958d8d31a430c
+SIZE (rust/crates/syn-0.15.36.crate) = 150279
+SHA256 (rust/crates/termcolor-1.0.5.crate) = 96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e
+SIZE (rust/crates/termcolor-1.0.5.crate) = 14526
+SHA256 (rust/crates/termion-1.5.3.crate) = 6a8fb22f7cde82c8220e5aeacb3258ed7ce996142c77cba193f203515e26c330
+SIZE (rust/crates/termion-1.5.3.crate) = 22080
+SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060
+SIZE (rust/crates/textwrap-0.11.0.crate) = 17322
+SHA256 (rust/crates/thread_local-0.3.6.crate) = c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b
+SIZE (rust/crates/thread_local-0.3.6.crate) = 12388
+SHA256 (rust/crates/threadpool-1.7.1.crate) = e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865
+SIZE (rust/crates/threadpool-1.7.1.crate) = 15756
+SHA256 (rust/crates/ucd-util-0.1.3.crate) = 535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86
+SIZE (rust/crates/ucd-util-0.1.3.crate) = 25897
+SHA256 (rust/crates/unicode-segmentation-1.3.0.crate) = 1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9
+SIZE (rust/crates/unicode-segmentation-1.3.0.crate) = 90567
+SHA256 (rust/crates/unicode-width-0.1.5.crate) = 882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526
+SIZE (rust/crates/unicode-width-0.1.5.crate) = 15761
+SHA256 (rust/crates/unicode-xid-0.1.0.crate) = fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc
+SIZE (rust/crates/unicode-xid-0.1.0.crate) = 16000
+SHA256 (rust/crates/utf8-ranges-1.0.3.crate) = 9d50aa7650df78abf942826607c62468ce18d9019673d4a2ebe1865dbb96ffde
+SIZE (rust/crates/utf8-ranges-1.0.3.crate) = 8496
+SHA256 (rust/crates/vec_map-0.8.1.crate) = 05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a
+SIZE (rust/crates/vec_map-0.8.1.crate) = 14959
+SHA256 (rust/crates/winapi-0.3.7.crate) = f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770
+SIZE (rust/crates/winapi-0.3.7.crate) = 1075776
+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.2.crate) = 7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9
+SIZE (rust/crates/winapi-util-0.1.2.crate) = 7810
+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/wincolor-1.0.1.crate) = 561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba
+SIZE (rust/crates/wincolor-1.0.1.crate) = 4737
+SHA256 (ctbur-async-v0.1.1_GH0.tar.gz) = 89f5f69afaf88d9b9f15310b8f7c62031ac03ee814925424aa3879eb6ecf2f9b
+SIZE (ctbur-async-v0.1.1_GH0.tar.gz) = 21924
diff --git a/sysutils/async/pkg-descr b/sysutils/async/pkg-descr
new file mode 100644
index 000000000000..a2303ea588bd
--- /dev/null
+++ b/sysutils/async/pkg-descr
@@ -0,0 +1,5 @@
+async is a tool to run shell commands in parallel and is designed to be able to
+quickly parallelize shell scripts with minimal changes.
+
+It was inspired by GNU Parallel, with the main difference being that async
+retains state between commands by running a server in the background.