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