From 5e6f90f50448b7e92a0461f0d8dc3857fd14602a Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Sat, 13 Jan 2024 11:56:25 +0200 Subject: [PATCH] feat: add audit for wayback machine URLs --- Library/Homebrew/formula_auditor.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Library/Homebrew/formula_auditor.rb b/Library/Homebrew/formula_auditor.rb index 7ac8a334a0..29294cf0f4 100644 --- a/Library/Homebrew/formula_auditor.rb +++ b/Library/Homebrew/formula_auditor.rb @@ -602,6 +602,27 @@ module Homebrew problem "Product is EOL since #{metadata["eol"]}, #{see_url}" if Date.parse(metadata["eol"]) <= Date.today end + def audit_wayback_url + return unless @strict + return unless @core_tap + return if formula.deprecated? || formula.disabled? + + regex = %r{^https?://web\.archive\.org} + problem_prefix = "Formula with a Internet Archive Wayback Machine" + + problem "#{problem_prefix} `url` should be deprecated with `:repo_removed`" if regex.match?(formula.stable.url) + + if regex.match?(formula.homepage) + problem "#{problem_prefix} `homepage` should find an alternative `homepage` or be deprecated." + end + + return unless formula.head + + return unless regex.match?(formula.head.url) + + problem "Remove Internet Archive Wayback Machine `head` URL" + end + def audit_github_repository_archived return if formula.deprecated? || formula.disabled?