mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

- Use raw.githubusercontent.com to download cask source rather than formulae.brew.sh. This allows us to remove these files - output the tap's current `HEAD` for both formulae and cask JSON - use this `HEAD` for the cask-source API to get the exact file on raw.githubusercontent.com rather than just whatever is newest (which is what the previous API did) - set the `Tap` correctly when creating a `Cask` from the API - if the `formula.json` file exists: print its modified time include `brew config` - memoize `tap.git_head` as we'll be calling it a lot in the same process with the same value
30 lines
679 B
Ruby
30 lines
679 B
Ruby
# typed: false
|
|
# frozen_string_literal: true
|
|
|
|
module Homebrew
|
|
module API
|
|
# Helper functions for using the cask source API.
|
|
#
|
|
# @api private
|
|
module CaskSource
|
|
class << self
|
|
extend T::Sig
|
|
|
|
sig { params(token: String, git_head: T.nilable(String)).returns(Hash) }
|
|
def fetch(token, git_head: nil)
|
|
token = token.sub(%r{^homebrew/cask/}, "")
|
|
Homebrew::API.fetch_source token, git_head: git_head
|
|
end
|
|
|
|
sig { params(token: String).returns(T::Boolean) }
|
|
def available?(token)
|
|
fetch token
|
|
true
|
|
rescue ArgumentError
|
|
false
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|