Skip to content

Repository files navigation

Toolbox

              .                       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
test hits of code release license

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:

  • bak wraps rdiff-backup to create incremental backups.

  • chowner changes the owner and permissions on a directory.

  • copyright updates years in copyright notices.

  • essid watches for Wi-Fi ESSID changes and reports them.

  • flactomp3 converts audio files to mp3 with tags.

  • ival validates image files. The name stands for Image Validation.

  • myip continuously displays the external IP address using dig.

  • pingo adds timestamps to the ping command output.

  • reel converts a video clip to a vertical (1080×1920) social media reel using ffmpeg, padding it with a blurred copy of itself. Accepts -c to center-crop and fill the frame instead of padding, -f for input file, -o for output file, -s for start time, -u for duration, and -g for a top and bottom gap in crop mode.

  • remount remounts filesystems using a temporary fstab configuration, then restores the permanent one.

  • rsyncx wraps rsync and picks a safe option set for the installed rsync version.

  • scanner detects whether a device with a given MAC address is present on the local network using arp-scan.

  • sift copies a random subset of files from a source directory into a destination directory until a byte budget is reached. Accepts -s for the byte budget (a number with an optional K, M, or G suffix, default 8G) and -o for the destination directory (default the current directory). Takes the source directory as the mandatory positional argument.

  • speed continuously displays download and upload internet speeds using speedtest.

  • tex compiles a TeX source file to PDF and opens the result.

  • tru removes a torrent and its content, then adds it again to increase the share ratio. The name stands for Transmission Remote Updater. It can run under cron.

  • ydata wraps yt-dlp: it downloads, converts, renames, and stores media safely. It can run under cron.

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.

$ redo lint
20260803-14:02:01 » dash -n ./lint.do
20260803-14:02:01 » mksh -n ./lint.do
20260803-14:02:02 » shellcheck ./*.do ./app/*
# actionlint, reuse - not installed, nothing logged
20260803-14:02:04 shfmt failed, err=1.
20260803-14:02:05 » yamllint ./.github/*.yml ./.github/workflows/*.yml
OK

License

David Rabkin holds the copyright to toolbox and distributes it under the Zero-Clause BSD license.

About

Unix shell scripts designed for everyday use.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages