#!/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')" 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 < <( curl -fsSL https://endoflife.date/api/ruby.json | jq -r '.[] | [.cycle,.eol] | @tsv' printf "%s\t%s\n" "jruby-9.0" "1970-01-01" printf "%s\t%s\n" "jruby-9.1" "1970-01-01" printf "%s\t%s\n" "jruby-9.2" "1970-01-01" printf "%s\t%s\n" "jruby-9.3" "2024-01-01" printf "%s\t%s\n" "jruby-9.4" "2026-05-01" ) num_updated="$(rm -fv share/ruby-build/*.bak | wc -l)" printf "definition files updated: %d\n" "$num_updated"