bin/scripts/zet
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
#!/bin/bash ZET_DIR="$HOME/docs/org/zet" if [ ! -d "$ZET_DIR" ] then echo "error: zet dir not present - $ZET_DIR" exit 1 fi list(){ for a in $ZET_DIR/* do title=$(cat $a | head -1) tags=$(cat $a | tail -1 | grep '^tags:.*$' | sed 's/tags:/# /') # replace with pure bash later printf '%s: %s %s\n' `basename $a` "${title/\# }" "$tags" done } slugify(){ echo $@ | sed -e 's/[^[:alnum:]]/-/g' | tr -s '-' | tr A-Z a-z | sed 's/-$//' } create(){ title="$@" filename="`date +%Y%m%d%H%M`-$(slugify $title).md" printf "# %s\n\n\n" "$title" > $ZET_DIR/$filename vim +3 $ZET_DIR/$filename t=$(cat $ZET_DIR/$filename | head -1) title=$(printf "%s" "${t/\# }") cd $ZET_DIR git add $filename git commit -m "zet: $title" > /dev/null echo "Created zet $ZET_DIR/$filename" } case $1 in list|l) list ;; fzf|f) list | fzf --tac ;; dir|d) echo $ZET_DIR ;; c) shift create $@ ;; edit|e) choice=$(list | fzf --tac) if [ "$choice" ] then filename="$(echo $choice | cut -d: -f1)" vim $ZET_DIR/$filename t=$(cat $ZET_DIR/$filename | head -1) title=$(printf "%s" "${t/\# }") cd $ZET_DIR git add $filename git commit -m "zet: $title" > /dev/null echo "Edited zet $ZET_DIR/$filename" fi ;; print|p) choice=$(list | fzf --tac) if [ "$choice" ] then filename="$(echo $choice | cut -d: -f1)" cat $ZET_DIR/$filename fi esac