#!/usr/bin/env bash VERSION="0.0.2" PROGRAM="$(basename $0)" [ -f "${WDRC:-"$HOME/.wdrc"}" ] && source "${WDRC:-"$HOME/.wdrc"}" WD_NOTES_DIR=${WD_NOTES_DIR:-"$HOME/notes"} WD_JOURNALS_DIR=${WD_JOURNALS_DIR:-"$WD_NOTES_DIR/journals"} year=$(date +%Y) week_number=$(date +%W) cmd_usage () { cat <<-_EOF Usage: $PROGRAM journal $PROGRAM edit $PROGRAM git [] Run git command in $WD_NOTES_DIR _EOF exit 0 } cmd_version () { echo $VERSION exit 0 } cmd_edit () { $EDITOR "$WD_NOTES_DIR/index.md" exit 0 } cmd_journal () { local weekly_journal_title="# Week $week_number $year" local weekly_journal_subtitle="## $(date '+%Y-%m-%d %A')" local monthly_journal_title="# $(date '+%B %Y')" local monthly_journal_subtitle="## [Week $week_number $year](week$week_number.md)" local weekly_journal="$WD_JOURNALS_DIR/$year/week$week_number.md" local monthly_journal="$WD_JOURNALS_DIR/$year/$(date '+%Y-%m').md" local file_to_edit="$weekly_journal" local file_title="$weekly_journal_title" local file_subtitle="$weekly_journal_subtitle" case "$1" in --monthly|-m) shift; file_to_edit="$monthly_journal" file_title="$monthly_journal_title" file_subtitle="$monthly_journal_subtitle" ;; esac [ ! -f "$file_to_edit" ] && echo "$file_title" > "$file_to_edit" grep -qF "$file_subtitle" "$file_to_edit" || echo "$file_subtitle" >> "$file_to_edit" $EDITOR "$file_to_edit" exit 0 } cmd_git () { cd "$WD_NOTES_DIR" && git "$@" } case "$1" in help|--help|-h) shift; cmd_usage "$@";; version|--version|-v) shift; cmd_version "$@";; journal|j) shift; cmd_journal "$@";; edit|e) shift; cmd_edit "$@";; git|g) shift; cmd_git "$@" ;; *) cmd_usage "$@";; esac exit 0