aboutsummaryrefslogtreecommitdiff
path: root/misc/.local/bin/zettel
blob: 21ad46a5dd23851f2c38cc8fc4a488a50cad8139 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/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