• בלוג
  • איך לזהות חגים מתוך Shell Script

איך לזהות חגים מתוך Shell Script

אז תקופת החגים מגיעה ובין כל ההכנות נזכרתי שרציתי לשלוח את הדוור שלנו לנוח במהלך החגים. כן גם תהליכים אוטומטיים רוצים מדי פעם את החופש שלהם לשבת על שפת הים אתם יודעים ולא לדאוג למי צריך לשלוח איזה עדכון על פוסטים חדשים.

אם לא יהיו הפתעות של הרגע האחרון הדוור ישתמש בסקריפט הבא כדי לזהות שחג היום ולחכות עם סיבוב הדואר היומי שלו עד למוצאי החג. זה לא ארוך ואמור לא להתקלקל לעולם אז אולי יעזור גם לכם:

evenings_ok=(
"Pesach I"
"Pesach VIII"
"Shavuot I"
"Tish'a B'Av"
"Rosh Hashana II"
"Yom Kippur"
"Sukkot I"
"Shmini Atzeret"
)

no_emails=(
"Rosh Hashana"
)

for send_in_evening in "${evenings_ok[@]}"
do
    # echo "^[0-9/]+ ${send_in_evening}"
    if hebcal $(date +"%d %m %Y") | egrep "^[0-9/]+ ${send_in_evening}" >& /dev/null
    then
        if (( $(date +%"H") < 20 ))
        then
            exit 1
        fi
    fi
done

for holiday in "${no_emails[@]}"
do
    if hebcal $(date +"%d %m %Y") | egrep "^${holiday}" >& /dev/null
    then
        exit 1
    fi
done

וכמובן אם אתם לא מהאנשים שמחכים לדוור ומעדיפים לקרוא באתר מוזמנים להמשיך לבקר ולקרוא את הפוסטים החדשים מיד כשהם עולים לאוויר בכל בוקר ב 6.

שנה טובה ינון

 

עריכה- מסתבר שהיה באג בסקריפט. הנה הגירסא המתוקנת (לפחות עד שנגלה את הבאג הבא). אנסה להמשיך לעדכן את הפוסט הזה עם כל תיקון באג:

evenings_ok=(
"Pesach I"
"Pesach VIII"
"Shavuot I"
"Tish'a B'Av"
"Rosh Hashana II"
"Yom Kippur"
"Sukkot I"
"Shmini Atzeret"
)

no_emails=(
"Rosh Hashana"
)

for send_in_evening in "${evenings_ok[@]}"
do
	# echo "^[0-9/]+ ${send_in_evening}"
	if hebcal $(date +"%m %d %Y") | egrep "^[0-9/]+ ${send_in_evening}" >& /dev/null
	then
		if (( $(date +%"H") < 20 ))
		then
			exit 1
		fi
	fi
done

for holiday in "${no_emails[@]}"
do
	if hebcal $(date +"%m %d %Y") | egrep "^[0-9/]+ ${holiday}" >& /dev/null
	then
		exit 1
	fi
done

exit 0