Skip to content

rdavid/toolbox

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 or, with -c, center-cropping it to fill the frame. Accepts -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 until the byte budget given by -s|--size=N[K|M|G] (default 8G) is reached. Takes the source directory as the mandatory positional argument; the destination defaults to the current directory and can be set with -o|--output=DIR.

  • 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 git@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.

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

License

Stars

3 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages