diff --git a/.gitignore b/.gitignore index 7162e10..a47adf1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ __pycache__/ *.pyo *.pyc *.json +*.gz diff --git a/run.sh b/run.sh index 57f093d..a3e889e 100755 --- a/run.sh +++ b/run.sh @@ -13,8 +13,10 @@ previous_file="" while true; do # Get one shot of data data="$("$PYTHON" "$(dirname "$0")"/trainmap_backup.py)" + if test $? -ne 0; then echo "Error: failed to fetch trainmap data" >&2; continue; fi timestamp="$(printf '%s\n' "$data" | jq ".timestamp / 1000 | round")" + if test "$timestamp" = "" || test "$timestamp" -lt 1705410073 || test "$timestamp" -gt 4102441200; then echo "Error: timestamp '$timestamp' invalid" >&2; continue; fi file="$(date +%Y-%m-%d --date "@$timestamp").json" # Write the data to file @@ -23,8 +25,12 @@ while true; do # At the start of a new day, archive the previous day's file if test "$previous_file" == ""; then previous_file="$file" - elif test "$file" != "$previous_file" && test "$file" != ""; then - gzip --best "$previous_file" + elif test "$file" != "$previous_file"; then + if test -e "$previous_file.gz"; then + echo "Warning: $previous_file.gz already exists, not archiving" >&2 + else + gzip --best "$previous_file" + fi previous_file="$file" fi