Module: DeprecateDisable Private

Defined in:
deprecate_disable.rb

Overview

This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.

Helper module for handling disable! and deprecate!.

Constant Summary collapse

FORMULA_DEPRECATE_DISABLE_REASONS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

{
  does_not_build:      "does not build",
  no_license:          "has no license",
  repo_archived:       "has an archived upstream repository",
  repo_removed:        "has a removed upstream repository",
  unmaintained:        "is not maintained upstream",
  unsupported:         "is not supported upstream",
  deprecated_upstream: "is deprecated upstream",
  versioned_formula:   "is a versioned formula",
  checksum_mismatch:   "was built with an initially released source file that had " \
                       "a different checksum than the current one. " \
                       "Upstream's repository might have been compromised. " \
                       "We can re-package this once upstream has confirmed that they retagged their release",
}.freeze
CASK_DEPRECATE_DISABLE_REASONS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

{
  discontinued:             "is discontinued upstream",
  moved_to_mas:             "is now exclusively distributed on the Mac App Store",
  no_longer_available:      "is no longer available upstream",
  no_longer_meets_criteria: "no longer meets the criteria for acceptable casks",
  unmaintained:             "is not maintained upstream",
  unsigned:                 "is unsigned or does not meet signature requirements",
}.freeze

Class Method Summary collapse

Class Method Details

.message(formula_or_cask) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'deprecate_disable.rb', line 38

def message(formula_or_cask)
  return if type(formula_or_cask).blank?

  reason = if formula_or_cask.deprecated?
    formula_or_cask.deprecation_reason
  elsif formula_or_cask.disabled?
    formula_or_cask.disable_reason
  end

  reason = if formula_or_cask.is_a?(Formula) && FORMULA_DEPRECATE_DISABLE_REASONS.key?(reason)
    FORMULA_DEPRECATE_DISABLE_REASONS[reason]
  elsif formula_or_cask.is_a?(Cask::Cask) && CASK_DEPRECATE_DISABLE_REASONS.key?(reason)
    CASK_DEPRECATE_DISABLE_REASONS[reason]
  else
    reason
  end

  return "#{type(formula_or_cask)} because it #{reason}!" if reason.present?

  "#{type(formula_or_cask)}!"
end

.to_reason_string_or_symbol(string, type:) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



60
61
62
63
64
65
66
67
# File 'deprecate_disable.rb', line 60

def to_reason_string_or_symbol(string, type:)
  if (type == :formula && FORMULA_DEPRECATE_DISABLE_REASONS.key?(string&.to_sym)) ||
     (type == :cask && CASK_DEPRECATE_DISABLE_REASONS.key?(string&.to_sym))
    return string.to_sym
  end

  string
end

.type(formula_or_cask) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



32
33
34
35
36
# File 'deprecate_disable.rb', line 32

def type(formula_or_cask)
  return :deprecated if formula_or_cask.deprecated?

  :disabled if formula_or_cask.disabled?
end