forked from kubernetes/website
-
Notifications
You must be signed in to change notification settings - Fork 0
/
redirects.rb
72 lines (67 loc) · 2.89 KB
/
redirects.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 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