tinytools 1.1.0

A collection of tools that enhance your experience in shell.
tinytools-1.1.0 is not a library.

tinytools

A collection of tools that enhance your experience in shell. This provides an executable named tt, which in turn provides the following utilities (more to be added):

  • bak: Append a tilde (~) to the names of given files/directories.
  • debak: Pop a tilde (~) from the names of given files/directories.
  • gr: Get the nearest git root above current working directory (if it exists).

Installation

Installing with cargo:

$ cargo install tinytools

Utilities

bak

Sometimes you want to quickly backup some file, this is typically done by suffixing the file with a tilde (~). When there are multiple files to be renamed, bak helps you to do this at ease:

$ alias bak="tt bak"
$
$ touch testfile
$ mkdir testdir
$ ls
testdir/  testfile
$ bak testdir testfile
renamed "<absolute path>/testfile" -> "<absolute path>/testfile~"
renamed "<absolute path>/testdir" -> "<absolute path>/testdir~"

bak aborts if the path after appending a tilde exists in the filesystem.

debak

debak is the inverse of bak (see: bak). It does nothing (and aborts) when any of the given path does not end with a tilde.

gr

Sometimes you want to quickly go to nearest git root of current project. Add this shell function to your shell's initialization script:

function cg() {
    local groot=$(tt gr 2>/dev/null)
    if [[ -n $groot ]]; then
        cd $groot
    fi
}

Then, call cg to quickly jump from your cwd to git root:

$ pwd
/home/r2d2/repos/tinytools/src/modules
$ cg
$ pwd
/home/r2d2/repos/tinytools
$ cd -
$ pwd
/home/r2d2/repos/tinytools/src/modules