Date: Tue, 15 Feb 2022 21:25:34 GMT From: Emanuel Haupt <ehaupt@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 6f16c9c835c7 - main - sysutils/bkt: Add new port Message-ID: <202202152125.21FLPYJ5002746@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by ehaupt: URL: https://cgit.FreeBSD.org/ports/commit/?id=6f16c9c835c7c33e302e5e2b2a559a00d210944d commit 6f16c9c835c7c33e302e5e2b2a559a00d210944d Author: Emanuel Haupt <ehaupt@FreeBSD.org> AuthorDate: 2022-02-15 21:24:29 +0000 Commit: Emanuel Haupt <ehaupt@FreeBSD.org> CommitDate: 2022-02-15 21:24:29 +0000 sysutils/bkt: Add new port bkt (pronounced bucket) is a subprocess caching utility written in Rust, inspired by bash-cache. Wrapping expensive process invocations with bkt allows callers to reuse recent invocations without complicating their application logic. This can be useful in shell prompts, interactive applications such as fzf, and long-running programs that poll other processes. When bkt is passed a command it hasn't seen before (or recently) it executes the command synchronously and caches its stdout, stderr, and exit code. Calling bkt again with the same command reads the data from the cache and outputs it as if the command had been run again. --- sysutils/Makefile | 1 + sysutils/bkt/Makefile | 22 ++++++++++ sysutils/bkt/Makefile.crates | 49 +++++++++++++++++++++ sysutils/bkt/distinfo | 101 +++++++++++++++++++++++++++++++++++++++++++ sysutils/bkt/pkg-descr | 13 ++++++ 5 files changed, 186 insertions(+) diff --git a/sysutils/Makefile b/sysutils/Makefile index fb12d4ef6954..733d4387b019 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -123,6 +123,7 @@ SUBDIR += biosfont SUBDIR += bkpupsd SUBDIR += bksh + SUBDIR += bkt SUBDIR += boot-extract SUBDIR += boxbackup-devel SUBDIR += bpytop diff --git a/sysutils/bkt/Makefile b/sysutils/bkt/Makefile new file mode 100644 index 000000000000..61ec47c1d519 --- /dev/null +++ b/sysutils/bkt/Makefile @@ -0,0 +1,22 @@ +# Created by: Emanuel Haupt <ehaupt@FreeBSD.org> + +PORTNAME= bkt +PORTVERSION= 0.5.2 +CATEGORIES= sysutils + +MAINTAINER= ehaupt@FreeBSD.org +COMMENT= Subprocess caching utility + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= cargo +USE_GITHUB= yes +GH_ACCOUNT= dimo414 + +PLIST_FILES= bin/bkt + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/bkt + +.include <bsd.port.mk> diff --git a/sysutils/bkt/Makefile.crates b/sysutils/bkt/Makefile.crates new file mode 100644 index 000000000000..5a6687bcba5c --- /dev/null +++ b/sysutils/bkt/Makefile.crates @@ -0,0 +1,49 @@ +CARGO_CRATES= anyhow-1.0.38 \ + autocfg-1.0.1 \ + bincode-1.3.1 \ + bitflags-1.2.1 \ + byteorder-1.4.2 \ + cfg-if-1.0.0 \ + clap-3.0.0 \ + clap_derive-3.0.0 \ + filetime-0.2.14 \ + getrandom-0.1.16 \ + getrandom-0.2.2 \ + hashbrown-0.11.2 \ + heck-0.3.3 \ + humantime-2.1.0 \ + indexmap-1.7.0 \ + itoa-0.4.7 \ + lazy_static-1.4.0 \ + libc-0.2.86 \ + memchr-2.4.1 \ + os_str_bytes-6.0.0 \ + ppv-lite86-0.2.10 \ + proc-macro-error-1.0.4 \ + proc-macro-error-attr-1.0.4 \ + proc-macro2-1.0.36 \ + quote-1.0.9 \ + rand-0.7.3 \ + rand-0.8.3 \ + rand_chacha-0.2.2 \ + rand_chacha-0.3.0 \ + rand_core-0.5.1 \ + rand_core-0.6.2 \ + rand_hc-0.2.0 \ + rand_hc-0.3.0 \ + redox_syscall-0.2.5 \ + ryu-1.0.5 \ + serde-1.0.123 \ + serde_derive-1.0.123 \ + serde_json-1.0.62 \ + syn-1.0.84 \ + test_dir-0.1.0 \ + textwrap-0.14.2 \ + unicode-segmentation-1.8.0 \ + unicode-xid-0.2.1 \ + version_check-0.9.3 \ + wasi-0.9.0+wasi-snapshot-preview1 \ + wasi-0.10.2+wasi-snapshot-preview1 \ + winapi-0.3.9 \ + winapi-i686-pc-windows-gnu-0.4.0 \ + winapi-x86_64-pc-windows-gnu-0.4.0 diff --git a/sysutils/bkt/distinfo b/sysutils/bkt/distinfo new file mode 100644 index 000000000000..c2c239266003 --- /dev/null +++ b/sysutils/bkt/distinfo @@ -0,0 +1,101 @@ +TIMESTAMP = 1644953250 +SHA256 (rust/crates/anyhow-1.0.38.crate) = afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1 +SIZE (rust/crates/anyhow-1.0.38.crate) = 30417 +SHA256 (rust/crates/autocfg-1.0.1.crate) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a +SIZE (rust/crates/autocfg-1.0.1.crate) = 12908 +SHA256 (rust/crates/bincode-1.3.1.crate) = f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d +SIZE (rust/crates/bincode-1.3.1.crate) = 26121 +SHA256 (rust/crates/bitflags-1.2.1.crate) = cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693 +SIZE (rust/crates/bitflags-1.2.1.crate) = 16745 +SHA256 (rust/crates/byteorder-1.4.2.crate) = ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b +SIZE (rust/crates/byteorder-1.4.2.crate) = 22148 +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.0.crate) = d17bf219fcd37199b9a29e00ba65dfb8cd5b2688b7297ec14ff829c40ac50ca9 +SIZE (rust/crates/clap-3.0.0.crate) = 189026 +SHA256 (rust/crates/clap_derive-3.0.0.crate) = e1b9752c030a14235a0bd5ef3ad60a1dcac8468c30921327fc8af36b20c790b9 +SIZE (rust/crates/clap_derive-3.0.0.crate) = 24684 +SHA256 (rust/crates/filetime-0.2.14.crate) = 1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8 +SIZE (rust/crates/filetime-0.2.14.crate) = 14358 +SHA256 (rust/crates/getrandom-0.1.16.crate) = 8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce +SIZE (rust/crates/getrandom-0.1.16.crate) = 25077 +SHA256 (rust/crates/getrandom-0.2.2.crate) = c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8 +SIZE (rust/crates/getrandom-0.2.2.crate) = 26010 +SHA256 (rust/crates/hashbrown-0.11.2.crate) = ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e +SIZE (rust/crates/hashbrown-0.11.2.crate) = 85713 +SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c +SIZE (rust/crates/heck-0.3.3.crate) = 10260 +SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4 +SIZE (rust/crates/humantime-2.1.0.crate) = 16749 +SHA256 (rust/crates/indexmap-1.7.0.crate) = bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5 +SIZE (rust/crates/indexmap-1.7.0.crate) = 50363 +SHA256 (rust/crates/itoa-0.4.7.crate) = dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736 +SIZE (rust/crates/itoa-0.4.7.crate) = 12099 +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.86.crate) = b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c +SIZE (rust/crates/libc-0.2.86.crate) = 522986 +SHA256 (rust/crates/memchr-2.4.1.crate) = 308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a +SIZE (rust/crates/memchr-2.4.1.crate) = 64977 +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/ppv-lite86-0.2.10.crate) = ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857 +SIZE (rust/crates/ppv-lite86-0.2.10.crate) = 20915 +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.36.crate) = c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029 +SIZE (rust/crates/proc-macro2-1.0.36.crate) = 41411 +SHA256 (rust/crates/quote-1.0.9.crate) = c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7 +SIZE (rust/crates/quote-1.0.9.crate) = 25042 +SHA256 (rust/crates/rand-0.7.3.crate) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03 +SIZE (rust/crates/rand-0.7.3.crate) = 112246 +SHA256 (rust/crates/rand-0.8.3.crate) = 0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e +SIZE (rust/crates/rand-0.8.3.crate) = 84493 +SHA256 (rust/crates/rand_chacha-0.2.2.crate) = f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402 +SIZE (rust/crates/rand_chacha-0.2.2.crate) = 13267 +SHA256 (rust/crates/rand_chacha-0.3.0.crate) = e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d +SIZE (rust/crates/rand_chacha-0.3.0.crate) = 13920 +SHA256 (rust/crates/rand_core-0.5.1.crate) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19 +SIZE (rust/crates/rand_core-0.5.1.crate) = 21116 +SHA256 (rust/crates/rand_core-0.6.2.crate) = 34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7 +SIZE (rust/crates/rand_core-0.6.2.crate) = 21708 +SHA256 (rust/crates/rand_hc-0.2.0.crate) = ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c +SIZE (rust/crates/rand_hc-0.2.0.crate) = 11670 +SHA256 (rust/crates/rand_hc-0.3.0.crate) = 3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73 +SIZE (rust/crates/rand_hc-0.3.0.crate) = 11780 +SHA256 (rust/crates/redox_syscall-0.2.5.crate) = 94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9 +SIZE (rust/crates/redox_syscall-0.2.5.crate) = 23449 +SHA256 (rust/crates/ryu-1.0.5.crate) = 71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e +SIZE (rust/crates/ryu-1.0.5.crate) = 49570 +SHA256 (rust/crates/serde-1.0.123.crate) = 92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae +SIZE (rust/crates/serde-1.0.123.crate) = 74379 +SHA256 (rust/crates/serde_derive-1.0.123.crate) = 9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31 +SIZE (rust/crates/serde_derive-1.0.123.crate) = 54122 +SHA256 (rust/crates/serde_json-1.0.62.crate) = ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486 +SIZE (rust/crates/serde_json-1.0.62.crate) = 114960 +SHA256 (rust/crates/syn-1.0.84.crate) = ecb2e6da8ee5eb9a61068762a32fa9619cc591ceb055b3687f4cd4051ec2e06b +SIZE (rust/crates/syn-1.0.84.crate) = 235025 +SHA256 (rust/crates/test_dir-0.1.0.crate) = e571ebf9127a9da821890a9fa8a8ef777fce3e0f959ff6949cf06ca8b736381d +SIZE (rust/crates/test_dir-0.1.0.crate) = 4241 +SHA256 (rust/crates/textwrap-0.14.2.crate) = 0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80 +SIZE (rust/crates/textwrap-0.14.2.crate) = 52016 +SHA256 (rust/crates/unicode-segmentation-1.8.0.crate) = 8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b +SIZE (rust/crates/unicode-segmentation-1.8.0.crate) = 94011 +SHA256 (rust/crates/unicode-xid-0.2.1.crate) = f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564 +SIZE (rust/crates/unicode-xid-0.2.1.crate) = 14392 +SHA256 (rust/crates/version_check-0.9.3.crate) = 5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe +SIZE (rust/crates/version_check-0.9.3.crate) = 12547 +SHA256 (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519 +SIZE (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = 31521 +SHA256 (rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6 +SIZE (rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = 27505 +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-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 (dimo414-bkt-0.5.2_GH0.tar.gz) = e6acab9ae6a617fe471dceed9f69064e1f0cb3a8eb93d82e2087faeab4d48ee8 +SIZE (dimo414-bkt-0.5.2_GH0.tar.gz) = 27405 diff --git a/sysutils/bkt/pkg-descr b/sysutils/bkt/pkg-descr new file mode 100644 index 000000000000..ebea8633860a --- /dev/null +++ b/sysutils/bkt/pkg-descr @@ -0,0 +1,13 @@ +bkt (pronounced bucket) is a subprocess caching utility written in Rust, +inspired by bash-cache. +Wrapping expensive process invocations with bkt allows callers to reuse recent +invocations without complicating their application logic. This can be useful in +shell prompts, interactive applications such as fzf, and long-running programs +that poll other processes. + +When bkt is passed a command it hasn't seen before (or recently) it executes +the command synchronously and caches its stdout, stderr, and exit code. +Calling bkt again with the same command reads the data from the cache and +outputs it as if the command had been run again. + +WWW: https://github.com/dimo414/bkt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202202152125.21FLPYJ5002746>