first script
This commit is contained in:
commit
5a47198e81
57
main.sh
Executable file
57
main.sh
Executable file
@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
VCF_DIR=~/.contacts/contacts
|
||||
DELTAD=10
|
||||
|
||||
today="$(date '+%Y %m %d')"
|
||||
ty="${today:0:4}"
|
||||
tm="${today:5:2}"
|
||||
td="${today:8:2}"
|
||||
now="$(date +%s)"
|
||||
|
||||
display=''
|
||||
|
||||
for vcf in "$VCF_DIR"/*.vcf ; do
|
||||
bday_raw="$(cat $vcf | grep BDAY)"
|
||||
if [ -z "$bday_raw" ] ; then continue ; fi
|
||||
bday_raw="$(echo $bday_raw | cut -d ':' -f 2)"
|
||||
bday_raw=${bday_raw:0:-1}
|
||||
echo $bday_raw | grep '-' &>/dev/null
|
||||
# format yyyy-mm-dd
|
||||
if [ $? -eq 0 ] ; then
|
||||
year="${bday_raw:0:4}"
|
||||
month="${bday_raw:5:2}"
|
||||
day="${bday_raw:8:2}"
|
||||
# format yyyymmdd
|
||||
elif [ ${#bday_raw} -eq 8 ] ; then
|
||||
year="${bday_raw:0:4}"
|
||||
month="${bday_raw:4:2}"
|
||||
day="${bday_raw:6:2}"
|
||||
# unknown format
|
||||
else
|
||||
echo "Impossible to determine date format for: $bday_raw"
|
||||
continue
|
||||
fi
|
||||
|
||||
# Is the bday after or before today in civil year?
|
||||
# This comparison can make dalta negative. Be careful with next instructions.
|
||||
if [ "$month$day" -lt "$tm$td" ] ; then
|
||||
((nextbday_year=$ty+1))
|
||||
else
|
||||
nextbday_year=$ty
|
||||
fi
|
||||
|
||||
# How many days to next bday
|
||||
nextbday_stamp=$(date --date="$nextbday_year$month$day" +%s)
|
||||
((delta_s=$nextbday_stamp-$now))
|
||||
((delta_d=$delta_s/3600/24))
|
||||
|
||||
# Get all bdays
|
||||
if [ "$delta_d" -le "$DELTAD" ] ; then
|
||||
name="$(cat $vcf | grep 'FN:' | cut -d ':' -f 2)"
|
||||
display="$display${name:0:-1} : $year-$month-$day\n"
|
||||
fi
|
||||
|
||||
done
|
||||
# Send notification if date is close
|
||||
notify-send "Anniversaires" "$display"
|
Loading…
Reference in New Issue
Block a user