bash-cache
bkt
Our great sponsors
bash-cache | bkt | |
---|---|---|
6 | 14 | |
68 | 213 | |
- | - | |
0.0 | 7.3 | |
over 1 year ago | 3 months ago | |
Shell | Rust | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bash-cache
-
Why is it that a command run from the terminal command line produces line break but the same command run within bash script has no line break/
This is usually what a caller expects, but it's definitely surprising when it isn't. I encountered this with my bash-cache library because simpler approaches to caching commands will use command substitutions which turns out to be lossy (because it drops any trailing newlines).
-
Passing a command with double quotes to a function
Is the goal of your cache function to cache a command if it's been run before? If so you might like to use my bash-cache library :) Even if it's not quite what you're looking for you can poke around the code for some inspiration, it implements a function decorator pattern and demonstrates some hairy uses of eval.
-
New release of bkt, a subprocess caching utility
For another pure-bash solution (though it writes to disk, not in-memory arrays) check out my bash-cache library :) it's an older project that motivated bkt but I still use both. There's some terrifying bash patterns in bash-cache as well!
-
Beautiful Scripts
I'm pretty proud of my bash-cache utility, which implements a decorator pattern in Bash. Define a function, pass it to bc::cache, and like magic the function is wrapped with a caching layer.
- Been meaning to share this bash memoization library for a while; it uses a decorator pattern to transparently add a caching layer to functions
- Been meaning to share this function memoization library for a while; it uses a decorator pattern to wrap functions with a transparent caching layer
bkt
-
Tip: slow fzf --preview commands can be cached using bkt to make the preview more responsive
Hi, author of bkt here. I use fzf all the time and combine it with bkt to make --preview faster. I hope you find this pattern useful!
-
Passing a command with double quotes to a function
Alternatively, check out bkt (also mine), which is like bash-cache but for subprocesses instead of shell functions.
-
New release of bkt, a subprocess caching utility
Instead, using bkt ensures each request is only sent once and all subsequent calls return locally cached results:
Enjoy! If you find it useful please let me know how you're using it!
-
Escaping (?)
Honestly, any reasonably complex bash script uses (or should be using!) arrays, so just poke around and you'll probably see them. Here's a fairly straightforward script of mine with several arrays: https://github.com/dimo414/bkt/blob/master/benchmark.sh
- Bkt: A subprocess caching utility written in Rust
-
bkt: easily cache the output of command line programs
Glad to hear it! I hope you find it helpful :) If you have a few minutes please share how you're using bkt, it'll help me and others!
- My first Rust project: a caching utility for subprocesses - would appreciate any feedback
What are some alternatives?
fancy-git - That's a terminal prompt changer that shows a few cool git informations about your repository state. You can choose among different styles and enjoy all the aliases it provides you. Feel free for contributing, pull requests and issues are always welcome! ;)
comemo - Incremental computation through constrained memoization.
pure - Pretty, minimal and fast ZSH prompt
cached - Rust cache structures and easy function memoization
mini-prompt - 🦊 Minimal and versatile bash prompt
zoxide - A smarter cd command. Supports all major shells.
sbp - Simple Bash Prompt (SBP) is a bash prompt, which strives to be simple. But it isn't. But it looks kind of nice. I think.
navi - An interactive cheatsheet tool for the command-line
spaceship-prompt - :rocket::star: Minimalistic, powerful and extremely customizable Zsh prompt
ctrlg - A command line context switcher, written in Rust :crab:
prompt.gem - A collection of shell scripts to customize your prompt, distributed as a ProfileGem gem.
ShellCheck - ShellCheck, a static analysis tool for shell scripts