The zip

Create Script downloads the zip. The zip is the program.

Install

Unzip the download, then run:

chmod 755 installer.sh
./installer.sh

The installer and the uninstaller are bash, even when the script is zsh. Files land in $HOME/.lickety-script. Each script has its own directory under scripts/. bin/ holds a symlink to the entry script.

Put $HOME/.lickety-script/bin on PATH. Set LICKETY_SCRIPT_HOME to $HOME/.lickety-script. The installer prints that hint when the variable is empty. ./uninstaller.sh removes that one script.

A later install refreshes the framework and leaves the entry script you edited. ./installer.sh --install-user-script replaces that entry script and saves the old file with -bak on the end of the name. --cleanup moves the zip files into place instead of copying them.

Files

For a script named notify on bash, the names look like this. Zsh uses .zsh on the script files and on the completion file.

FileRole
notify.shThe entry script. This is the file you edit.
do-not-modify/lickety-notify.shParsing, help, and checks. Leave this file alone.
do-not-modify/common/ls-functions.shThe shared functions. Names start with a dot.
do-not-modify/common/ls-logging.shLogging. .log lives here.
notify-completion.bashTab completion. Source it. The installer does not copy it.
notify.mdThe readme. It names the variables and the functions.
installer.shInstalls the bundle. Always bash.
uninstaller.shRemoves that script. Always bash.

The zip also includes a license and a manifest. The manifest names every file.