diff options
Diffstat (limited to 'lib/tasks/gitlab/docs/redirect.rake')
-rw-r--r-- | lib/tasks/gitlab/docs/redirect.rake | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/lib/tasks/gitlab/docs/redirect.rake b/lib/tasks/gitlab/docs/redirect.rake index 990ff723eeb..123a4775605 100644 --- a/lib/tasks/gitlab/docs/redirect.rake +++ b/lib/tasks/gitlab/docs/redirect.rake @@ -57,68 +57,5 @@ namespace :gitlab do post.puts "<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page -->" end end - - desc 'GitLab | Docs | Clean up old redirects' - task :clean_redirects do - # - # Calculate new path from the redirect URL. - # - # If the redirect is not a full URL: - # 1. Create a new Pathname of the file - # 2. Use dirname to get all but the last component of the path - # 3. Join with the redirect_to entry - # 4. Substitute: - # - '.md' => '.html' - # - 'doc/' => '/ee/' - # - # If the redirect URL is a full URL pointing to the Docs site - # (cross-linking among the 4 products), remove the FQDN prefix: - # - # From : https://docs.gitlab.com/ee/install/requirements.html - # To : /ee/install/requirements.html - # - def new_path(redirect, filename) - if !redirect.start_with?('http') - Pathname.new(filename).dirname.join(redirect).to_s.gsub(%r(\.md), '.html').gsub(%r(doc/), '/ee/') - elsif redirect.start_with?('https://docs.gitlab.com') - redirect.gsub('https://docs.gitlab.com', '') - else - redirect - end - end - - today = Time.now.utc.to_date - - # - # Find the files to be deleted. - # Exclude 'doc/development/documentation/index.md' because it - # contains an example of the YAML front matter. - # - files_to_be_deleted = `grep -Ir 'remove_date:' doc | grep -v doc/development/documentation/index.md | cut -d ":" -f 1`.split("\n") - - # - # Iterate over the files to be deleted and print the needed - # YAML entries for the Docs site redirects. - # - files_to_be_deleted.each do |filename| - frontmatter = YAML.safe_load(File.read(filename)) - remove_date = Date.parse(frontmatter['remove_date']) - old_path = filename.gsub(%r(\.md), '.html').gsub(%r(doc/), '/ee/') - - # - # Check if the removal date is before today, and delete the file and - # print the content to be pasted in - # https://gitlab.com/gitlab-org/gitlab-docs/-/blob/master/content/_data/redirects.yaml. - # The remove_date of redirects.yaml should be nine months in the future. - # To not be confused with the remove_date of the Markdown page. - # - next unless remove_date < today - - File.delete(filename) if File.exist?(filename) - puts " - from: #{old_path}" - puts " to: #{new_path(frontmatter['redirect_to'], filename)}" - puts " remove_date: #{remove_date >> 9}" - end - end end end |