Make calendar more flexible

This commit is contained in:
Nick Chambers 2022-10-25 20:17:42 -05:00
parent f892f5d605
commit e8505903f0
1 changed files with 19 additions and 28 deletions

View File

@ -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"