73 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# This script generates a redirects file that Netlify's CDN
 | 
						|
# can use to forward visitor to the right content.
 | 
						|
#
 | 
						|
# You can read more details about this file in Netlify documentation:
 | 
						|
#
 | 
						|
#     https://www.netlify.com/docs/redirects/
 | 
						|
#
 | 
						|
# USAGE:
 | 
						|
#
 | 
						|
# Run this script with Ruby to generate the _redirects file in this repository.
 | 
						|
# It works with any Ruby version higher than 1.8.
 | 
						|
#
 | 
						|
#     ruby redirects.rb
 | 
						|
#
 | 
						|
# If you want to test a change without modifying the content of the current file,
 | 
						|
# you can print the output of the script setting the DEBUG environment variable
 | 
						|
# when you run the script:
 | 
						|
#
 | 
						|
#     DEBUG=1 ruby redirects.rb
 | 
						|
#
 | 
						|
# You can test if the content generated is correct in this playground:
 | 
						|
#
 | 
						|
#     https://play.netlify.com/redirects
 | 
						|
#
 | 
						|
# HOW TO ADD NEW RULES:
 | 
						|
#
 | 
						|
# This script is divided in two sections.
 | 
						|
#
 | 
						|
# The first section handles static redirects,
 | 
						|
# those that you know the old path and the new path and never change.
 | 
						|
#
 | 
						|
# If you want to add one of these redirects, add the rule to the `fixed_redirects` variable,
 | 
						|
# in a new line before the closing """. The format for basic 301 redirects is the following one,
 | 
						|
# check Netlify's documentation linked above for other rules:
 | 
						|
#
 | 
						|
# /OLD_PATH /NEW_PATH_OR_URL
 | 
						|
#
 | 
						|
# The second section handles redirects that change depending on the branch that's deployed
 | 
						|
# in the site. For instance, when you want to redirect a path to content in
 | 
						|
# the kubernetes main repository but the content is specific to a branch that
 | 
						|
# matches the deployed branch.
 | 
						|
#
 | 
						|
# If you want to add one of there redirects, add the old path to the `branch_redirects` list. For instance,
 | 
						|
# when you deploy the branch release-1.5 on Netlify, this script will generate the following redirects:
 | 
						|
#
 | 
						|
# /examples/* https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/:splat
 | 
						|
# /cluster/* https://github.com/kubernetes/kubernetes/tree/release-1.5/cluster/:splat
 | 
						|
# /docs/devel/* https://github.com/kubernetes/kubernetes/tree/release-1.5/docs/devel/:splat
 | 
						|
# /docs/design/* https://github.com/kubernetes/kubernetes/tree/release-1.5/docs/design/:splat
 | 
						|
#
 | 
						|
REPO_TMPL = "https://github.com/kubernetes/kubernetes/tree/%s/%s/:splat"
 | 
						|
 | 
						|
fixed_redirects = """# 301 redirects (301 is the default status when no other one is provided for each line)
 | 
						|
/third_party/swagger-ui		/kubernetes/third_party/swagger-ui/
 | 
						|
/resource-quota			/docs/admin/resourcequota/
 | 
						|
/horizontal-pod-autoscaler	/docs/user-guide/horizontal-pod-autoscaling/
 | 
						|
/docs/user-guide/overview	/docs/whatisk8s/
 | 
						|
/docs/roadmap			https://github.com/kubernetes/kubernetes/milestones/
 | 
						|
/api-ref			https://github.com/kubernetes/kubernetes/milestones/
 | 
						|
"""
 | 
						|
 | 
						|
branch_redirects = ["examples" , "cluster", "docs/devel", "docs/design"]
 | 
						|
 | 
						|
branch_redirects.each do |name|
 | 
						|
  dest = REPO_TMPL % [ENV.fetch("HEAD", "master"), name]
 | 
						|
  rule = "\n/#{name}/* #{dest}"
 | 
						|
 | 
						|
  fixed_redirects << rule
 | 
						|
end
 | 
						|
 | 
						|
output = ENV["DEBUG"] ? STDOUT : File.open(ENV.fetch("REDIRECTS_PATH", "_redirects"), "w+")
 | 
						|
output.puts fixed_redirects
 |