bin/scripts/zet (view raw)
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 |
#!/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 } create(){ title="$@" filename="`date +%Y%m%d%H%M`.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 |