aboutsummaryrefslogtreecommitdiffhomepage
path: root/bin/wiki/diary
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/diary')
-rwxr-xr-xbin/wiki/diary49
1 files changed, 49 insertions, 0 deletions
diff --git a/bin/wiki/diary b/bin/wiki/diary
new file mode 100755
index 0000000..3995ecf
--- /dev/null
+++ b/bin/wiki/diary
@@ -0,0 +1,49 @@
1#! /bin/bash
2
3today=~/log/`date +%y.w%W.md`
4
5specify_date() {
6 YEAR=${YEAR:-22}
7
8 while read -e -p 'Month? ' -r MONTH </dev/tty; do
9 [ -z $MONTH ] && MONTH=$(date +%m)
10 MONTH=$(printf "%02d" $MONTH)
11 date -d $YEAR-$MONTH-01 &>/dev/null && break
12 done
13
14 while read -e -p 'Day? ' -r DAY </dev/tty; do
15 [ -z $DAY ] && DAY=$(date +%d)
16 DAY=$(printf "%02d" $DAY)
17 date -d $YEAR-$MONTH-$DAY &>/dev/null && break
18 done
19
20 FILE=~/log/diary/20$YEAR-$MONTH-$DAY.md
21 vim -c 'Goyo' $FILE
22}
23
24print_today() {
25 [[ ! -e $today ]] && touch $today
26 cat $today
27}
28
29edit_today() {
30 vim -c Goyo $today
31}
32
33add_entry() {
34 [[ $# -ne 0 ]] && echo - "$@" >>$today
35 while read -e -r entry; do
36 echo $entry | sed -E 's/\t/ /g; s/(^[[:space:]]*)/\1- /' >>$today
37 done
38}
39
40case "$1" in
41 specify)
42 specify_date ;;
43 print)
44 print_today ;;
45 today)
46 edit_today ;;
47 *)
48 add_entry "$@" ;;
49esac