#!/usr/bin/env bash year=$(date +%Y) week_number=$(date +%W) weekly_journal_title="# Week $week_number $year" weekly_journal_subtitle="## $(date '+%Y-%m-%d %A')" monthly_journal_title="# $(date '+%B %Y')" monthly_journal_subtitle="## [Week $week_number $year](week$week_number.md)" weekly_journal="$WD_JOURNALS_DIR/$year/week$week_number.md" monthly_journal="$WD_JOURNALS_DIR/$year/$(date '+%Y-%m').md" # Open weekly journal by default. # TODO: maybe I can add a environment variable on it. file_to_edit="$weekly_journal" init_journal_with_title () { local filepath=$1 local journal_title=$2 [ ! -f "$filepath" ] && echo "$journal_title" > "$filepath" } append_line_if_not_in_file () { local filepath=$1 local line=$2 if ! grep -q "$line" "$filepath"; then echo "$line" >> "$filepath" fi } init_weekly_journal () { init_journal_with_title "$weekly_journal" "$weekly_journal_title" append_line_if_not_in_file "$weekly_journal" "$weekly_journal_subtitle" } init_monthly_journal () { init_journal_with_title "$monthly_journal" "$monthly_journal_title" append_line_if_not_in_file "$monthly_journal" "$monthly_journal_subtitle" } case "$1" in --monthly|-m) shift; init_monthly_journal; file_to_edit="$monthly_journal";; --weekly|-w) shift; init_weekly_journal; file_to_edit="$weekly_journal";; esac $EDITOR "$file_to_edit"