From 1b6d06e4a95e34c7d19bf471c11967407507ce06 Mon Sep 17 00:00:00 2001 From: finga Date: Sun, 13 Jul 2014 04:35:12 +0200 Subject: [PATCH] first code --- README.md | 2 +- birthdays.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 birthdays.sh 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