From e8505903f01ffec307cbcf1cd1c496b8d4177912 Mon Sep 17 00:00:00 2001 From: Nick Chambers Date: Tue, 25 Oct 2022 20:17:42 -0500 Subject: [PATCH] Make calendar more flexible --- dotlib/generic-post/calendar.sh | 47 +++++++++++++-------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/dotlib/generic-post/calendar.sh b/dotlib/generic-post/calendar.sh index 4bc2446..dc5cfca 100644 --- a/dotlib/generic-post/calendar.sh +++ b/dotlib/generic-post/calendar.sh @@ -1,32 +1,23 @@ -calendar-determine-holiday() { - local month day - read -r month day < <(date "+%m %d") +read -rd "" cal_events <<'EOF' +3,17,Saint Patrick's day,Happy,🍀 +10,31,Halloween,Have a spooky,🎃 +12,25,Christmas,Merry,🌲 +EOF - if (( 10#$month == 3 && 10#$day < 18 )); then - if (( 17 - 10#$day == 0 )); then - printf "Happy Saint Patrick's day!\n" - else - printf "Only %d days left until Saint Patrick's day!\n" "$(( 17 - 10#$day ))" +if [[ -f ~/.events.csv ]]; then + cal_events=$(< ~/.events.csv) +fi + +read -r cur_{month,day} < <(date "+%m %d") + +while IFS=, read -r ev_month ev_day ev celebrate sym; do + if (( 10#$cur_month == 10#$ev_month )); then + if (( 10#$cur_day < 10#$ev_day )); then + printf "Only %d days until %s!\n" "$(( 10#$ev_day - 10#$cur_day ))" "$ev" + elif (( 10#$cur_day == 10#$ev_day )); then + printf "%s %s!\n" "$celebrate" "${ev^}" fi - PS1_prompt_sym=🍀 - elif (( 10#$month == 10 )); then - if (( 31 - 10#$day == 0 )); then - printf 'Have a spooky halloween!\n' - else - printf 'Only %d days left until Halloween!\n' "$(( 31 - 10#$day ))" - fi - - PS1_prompt_sym=🎃 - elif (( 10#$month == 12 && 10#$day < 26 )); then - if (( 25 - 10#$day == 0 )); then - printf 'Merry Christmas!\n' - else - printf 'Only %d days left until Christmas!\n' "$(( 25 - 10#$day ))" - fi - - PS1_prompt_sym=🌲 + PS1_prompt_sym=$sym fi -} - -calendar-determine-holiday +done <<< "$cal_events"