mirror of
				https://github.com/rbenv/ruby-build.git
				synced 2025-10-31 01:04:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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"
 |