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
|