Skip to content

Commit

Permalink
Add script to update warn_unsuppported, warn_eol labels
Browse files Browse the repository at this point in the history
The script will automatically assign "warn_unsupported" or "warn_eol" labels
based on the information from endoflife.date.
  • Loading branch information
mislav committed Nov 11, 2023
1 parent 270ecd0 commit e03e8c3
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions script/update-eol
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# Adds "warn_unsupported" or "warn_eol" to CRuby definitions based on the
# information from endoflife.date.

set -e

date_to_seconds() {
# BSD date
date -jf '%Y-%m-%d' -v 0H -v 0M -v 0S "$1" '+%s' 2>/dev/null ||
# GNU date
date --date "$1" '+%s'
}

now_seconds="$(date '+%s')"

curl -fsSL https://endoflife.date/api/ruby.json | jq -r '.[] | [.cycle,.eol] | @tsv' | while read -r cycle eol_date; do
eol_seconds="$(date_to_seconds "$eol_date")"
days_to_eol=$(((eol_seconds - now_seconds) / 60 / 60 / 24))
if [ $days_to_eol -lt 0 ]; then
grep -L warn_eol share/ruby-build/"$cycle"[.-]* | grep -ve '-dev$' | \
xargs sed -i.bak -E '/openssl/n; s/ warn_unsupported//; s/(.+)"/\1" warn_eol/'
elif [ $days_to_eol -lt 180 ]; then
grep -L warn_unsupported share/ruby-build/"$cycle"[.-]* | grep -ve '-dev$' | \
xargs sed -i.bak -E '/openssl/n; s/(.+)"/\1" warn_unsupported/'
fi
done

num_updated="$(rm -fv share/ruby-build/*.bak | wc -l)"
printf "definition files updated: %d\n" "$num_updated"

0 comments on commit e03e8c3

Please sign in to comment.