. oooo .o8
.o8 `888 "888
.o888oo .ooooo. .ooooo. 888 888oooo. .ooooo. oooo ooo
888 d88' `88b d88' `88b 888 d88' `88b d88' `88b `88b..8P'
888 888 888 888 888 888 888 888 888 888 Y888'
888 . 888 888 888 888 888 888 888 888 888 .o8"'88b
"888" `Y8bod8P' `Y8bod8P' o888o `Y8bod8P' `Y8bod8P' o88' 888o
About
toolbox is a collection of Unix shell utilities for everyday use.
Each utility is a portable POSIX script built on the Unix shell framework
shellbase:
-
bakwrapsrdiff-backupto create incremental backups. -
chownerchanges the owner and permissions on a directory. -
copyrightupdates years in copyright notices. -
essidwatches for changes to the connected Wi-Fi network’s ESSID and reports them. -
flactomp3converts audio files tomp3with tags. -
ivalvalidates image files. The name stands for Image Validation. -
myipcontinuously displays the external IP address usingdig. -
pingoadds timestamps to the ping command output. -
reelconverts a video clip to a vertical 1080×1920 social media reel usingffmpeg, padding it with a blurred copy of itself. Accepts-cto center-crop and fill the frame instead of padding,-ffor input file,-ofor output file,-sfor start time,-ufor duration, and-zfor a horizontal crop shift in pixels, accepting negative values. -
remountremounts filesystems using a temporaryfstabconfiguration, then restores the permanent one. -
rsynxwrapsrsyncand picks a safe option set for the installedrsyncversion. -
scannerdetects whether a device with a given MAC address appears on the local network usingarp-scan. -
siftcopies a random subset of files from a source directory into a destination directory until it reaches a byte budget. Accepts-sfor the byte budget (a number with an optionalK,M, orGsuffix, default8G) and-ofor the destination directory (default the current directory). Takes the source directory as the mandatory positional argument. -
speedcontinuously displays download and upload internet speeds usingspeedtest. -
texcompiles a TeX source file to PDF and opens the result. -
truremoves a torrent and its content, then adds it again to increase the share ratio. The name stands for Transmission Remote Updater. It can run undercron. -
ydatawrapsyt-dlp: it downloads, converts, renames, and stores media, skipping videos it already downloaded. It can run undercron.
Install
Ensure /usr/local/bin is in your PATH.
git clone https://github.com/rdavid/toolbox.git &&
./toolbox/app/install
Test
The project uses Daniel J. Bernstein’s build system redo.
You can install Sergey Matveev’s goredo implementation.
redo lint runs whichever of the following linters you have installed:
actionlint,
checkbashisms,
conform,
gitleaks,
reuse,
shellcheck,
shfmt,
typos,
vale,
yamllint,
zizmor.
It also parses every script with dash -n and mksh -n to catch syntax
errors and Bash-only constructs.
What the numbers point at
-
1
No custom CLI to learn —
redo lintis a plain redo target running a POSIXlint.doscript. -
2
cmd_runechoes the exact command it's about to run, in the same green as every other info-levellogline, before any output appears. -
3
cmd_runifskips missing tools without a warning. Silence is the signal that a linter isn't installed, not a yellow line asking you to fix it. -
4
A genuine failure, printed in red by
loge. One bad linter doesn't stop the rest —lint.dokeeps going. -
5
The single line on stdout. redo reads it as the target's content. Every line above it went to stderr.
License
David Rabkin holds the copyright to toolbox and distributes it
under the Zero-Clause BSD license.