. 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 Wi-Fi ESSID changes 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-gfor a top and bottom gap in crop mode. -
remountremounts filesystems using a temporaryfstabconfiguration, then restores the permanent one. -
rsyncxwrapsrsyncand picks a safe option set for the installedrsyncversion. -
scannerdetects whether a device with a given MAC address is present on the local network usingarp-scan. -
siftcopies a random subset of files from a source directory into a destination directory until a byte budget is reached. 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 safely. 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 are installed:
actionlint,
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 only 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.