|
|
@@ -50,8 +50,25 @@ check_stamp()
|
|
|
fi
|
|
|
|
|
|
# compare midnight today to midnight the day the stamp was updated
|
|
|
- stamp=$(date --date=$(date -r $stamp --iso-8601) +%s)
|
|
|
- now=$(date --date=$(date --iso-8601) +%s)
|
|
|
+ stamp_file="$stamp"
|
|
|
+ stamp=$(date --date=$(date -r $stamp_file --iso-8601) +%s 2>/dev/null)
|
|
|
+ if [ "$?" != "0" ]; then
|
|
|
+ # Due to some timezones returning 'invalid date' for midnight on
|
|
|
+ # certain dates (eg America/Sao_Paulo), if date returns with error
|
|
|
+ # remove the stamp file and return 0. See coreutils bug:
|
|
|
+ # http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html
|
|
|
+ rm -f "$stamp_file"
|
|
|
+ return 0
|
|
|
+ fi
|
|
|
+
|
|
|
+ now=$(date --date=$(date --iso-8601) +%s 2>/dev/null)
|
|
|
+ if [ "$?" != "0" ]; then
|
|
|
+ # As above, due to some timezones returning 'invalid date' for midnight
|
|
|
+ # on certain dates (eg America/Sao_Paulo), if date returns with error
|
|
|
+ # return 0.
|
|
|
+ return 0
|
|
|
+ fi
|
|
|
+
|
|
|
delta=$(($now-$stamp))
|
|
|
|
|
|
# intervall is in days,
|