#! /bin/bash today=~/log/`date +%y.w%W.md` specify_date() { YEAR=${YEAR:-22} while read -e -p 'Month? ' -r MONTH /dev/null && break done while read -e -p 'Day? ' -r DAY /dev/null && break done FILE=~/log/diary/20$YEAR-$MONTH-$DAY.md vim -c 'Goyo' $FILE } print_today() { [[ ! -e $today ]] && touch $today cat $today } edit_today() { vim -c Goyo $today } add_entry() { [[ $# -ne 0 ]] && echo - "$@" >>$today while read -e -r entry; do echo $entry | sed -E 's/\t/ /g; s/(^[[:space:]]*)/\1- /' >>$today done } case "$1" in specify) specify_date ;; print) print_today ;; today) edit_today ;; *) add_entry "$@" ;; esac