#!/bin/sh NC='\033[0m' RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' msg_info() { echo -e "${GREEN}$1${NC}" } msg_warn() { echo -e "${YELLOW}$1${NC}" } msg_error() { echo -e "${RED}$1${NC}" } print_help() { echo echo "zettel - a kasten for your zettel" echo echo "This is a simple wrapper around some custom Neovim commands to manage" echo "a personal Zettelkasten." echo echo "USAGE:" echo " zettel COMMAND [...]" echo echo "COMMANDs are:" echo " n | new {title}:" echo " create a new note, setting the title to {title} if provided." echo " This is the default command." echo " i | k | index | kasten:" echo " open the zettelkasten index." echo " s | search:" echo " search zettelkasten by title." echo " g | grep:" echo " grep zettelkasten content." echo " h | help:" echo " print this help" echo } COMMAND=${1:-new} [[ $# -ge 1 ]] && shift case $COMMAND in n|new) pushd "$NOTES" nvim "+ZNew $@" +only popd ;; i|k|index|kasten) pushd "$NOTES" nvim +ZKasten +only popd ;; s|search) pushd "$NOTES" nvim +ZSearch popd ;; g|grep) pushd "$NOTES" nvim +ZGrep popd ;; help) print_help ;; *) msg_error "$COMMAND: invalid command" print_help exit 1 ;; esac exit 0