diff --git a/README.md b/README.md index d68d163..cc39953 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ birthdays ========= -shellscript for printing upcoming birthdays +shellscript for printing upcoming birthdays \ No newline at end of file diff --git a/birthdays.sh b/birthdays.sh new file mode 100755 index 0000000..d767ba1 --- /dev/null +++ b/birthdays.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# path to file +conf_file=$HOME/birthdays +days_left=30 + +# functions to get days to birthday +function days_left { + birthday=$(date -d "$1" +%j 2>/dev/null | sed 's/^0*//') + today=$(date +%j 2>/dev/null | sed 's/^0*//') + days=$(( ${birthday} - ${today} )) + if [ 0 -le "$days" ] && [ "$days" -le "$days_left" ];then + if [ "$days" -le $((days_left / 2)) ];then + echo -e "\033[33m$( cut -f 2- <<< "$i" ) in $days days\033[m" + elif [ "$days" -le 7 ];then + echo -e "\033[31m$( cut -f 2- <<< "$i" ) in $days days\033[m" + else + echo -e "\033[32m$( cut -f 2- <<< "$i" ) in $days days\033[m" + fi + + fi +} +readarray lines < "$conf_file" + +for i in "${lines[@]}"; do + days_left "$( cut -f 1 <<< "$i" )" +done