Switch to a more useful serialization of tap info
Closes Homebrew/homebrew#37383.
This commit is contained in:
parent
db05618561
commit
abb0cb3aa0
@ -25,9 +25,8 @@ module Homebrew
|
|||||||
all_versions << version
|
all_versions << version
|
||||||
older_version = f.version <= version
|
older_version = f.version <= version
|
||||||
|
|
||||||
tap = Tab.for_keg(keg).tapped_from
|
tap = Tab.for_keg(keg).tap
|
||||||
same_or_path_url_tap = f.tap == tap || tap == HOMEBREW_PATH_URL_TAP
|
if tap.nil? || f.tap == tap || older_version
|
||||||
if same_or_path_url_tap || older_version
|
|
||||||
older_or_same_tap_versions << version
|
older_or_same_tap_versions << version
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -539,8 +539,6 @@ class Formula
|
|||||||
"#$1/#$2"
|
"#$1/#$2"
|
||||||
elsif core_formula?
|
elsif core_formula?
|
||||||
"Homebrew/homebrew"
|
"Homebrew/homebrew"
|
||||||
else
|
|
||||||
HOMEBREW_PATH_URL_TAP
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -17,13 +17,13 @@ class Tab < OpenStruct
|
|||||||
"tabfile" => formula.prefix.join(FILENAME),
|
"tabfile" => formula.prefix.join(FILENAME),
|
||||||
"built_as_bottle" => build.bottle?,
|
"built_as_bottle" => build.bottle?,
|
||||||
"poured_from_bottle" => false,
|
"poured_from_bottle" => false,
|
||||||
"tapped_from" => formula.tap,
|
|
||||||
"time" => Time.now.to_i,
|
"time" => Time.now.to_i,
|
||||||
"HEAD" => Homebrew.git_head,
|
"HEAD" => Homebrew.git_head,
|
||||||
"compiler" => compiler,
|
"compiler" => compiler,
|
||||||
"stdlib" => stdlib,
|
"stdlib" => stdlib,
|
||||||
"source" => {
|
"source" => {
|
||||||
"path" => formula.path.to_s,
|
"path" => formula.path.to_s,
|
||||||
|
"tap" => formula.tap,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,6 +33,13 @@ class Tab < OpenStruct
|
|||||||
def self.from_file path
|
def self.from_file path
|
||||||
attributes = Utils::JSON.load(File.read(path))
|
attributes = Utils::JSON.load(File.read(path))
|
||||||
attributes["tabfile"] = path
|
attributes["tabfile"] = path
|
||||||
|
attributes["source"] ||= {}
|
||||||
|
|
||||||
|
tapped_from = attributes["tapped_from"]
|
||||||
|
unless tapped_from.nil? || tapped_from == "path or URL"
|
||||||
|
attributes["source"]["tap"] = attributes.delete("tapped_from")
|
||||||
|
end
|
||||||
|
|
||||||
new(attributes)
|
new(attributes)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -86,7 +93,7 @@ class Tab < OpenStruct
|
|||||||
else
|
else
|
||||||
tab = empty
|
tab = empty
|
||||||
tab.unused_options = f.options.as_flags
|
tab.unused_options = f.options.as_flags
|
||||||
tab.source = { "path" => f.path.to_s }
|
tab.source = { "path" => f.path.to_s, "tap" => f.tap }
|
||||||
end
|
end
|
||||||
|
|
||||||
tab
|
tab
|
||||||
@ -98,13 +105,13 @@ class Tab < OpenStruct
|
|||||||
"unused_options" => [],
|
"unused_options" => [],
|
||||||
"built_as_bottle" => false,
|
"built_as_bottle" => false,
|
||||||
"poured_from_bottle" => false,
|
"poured_from_bottle" => false,
|
||||||
"tapped_from" => "",
|
|
||||||
"time" => nil,
|
"time" => nil,
|
||||||
"HEAD" => nil,
|
"HEAD" => nil,
|
||||||
"stdlib" => nil,
|
"stdlib" => nil,
|
||||||
"compiler" => "clang",
|
"compiler" => "clang",
|
||||||
"source" => {
|
"source" => {
|
||||||
"path" => nil,
|
"path" => nil,
|
||||||
|
"tap" => nil,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,18 +166,21 @@ class Tab < OpenStruct
|
|||||||
built_as_bottle
|
built_as_bottle
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def tap
|
||||||
|
source["tap"]
|
||||||
|
end
|
||||||
|
|
||||||
def to_json
|
def to_json
|
||||||
attributes = {
|
attributes = {
|
||||||
"used_options" => used_options.as_flags,
|
"used_options" => used_options.as_flags,
|
||||||
"unused_options" => unused_options.as_flags,
|
"unused_options" => unused_options.as_flags,
|
||||||
"built_as_bottle" => built_as_bottle,
|
"built_as_bottle" => built_as_bottle,
|
||||||
"poured_from_bottle" => poured_from_bottle,
|
"poured_from_bottle" => poured_from_bottle,
|
||||||
"tapped_from" => tapped_from,
|
|
||||||
"time" => time,
|
"time" => time,
|
||||||
"HEAD" => self.HEAD,
|
"HEAD" => self.HEAD,
|
||||||
"stdlib" => (stdlib.to_s if stdlib),
|
"stdlib" => (stdlib.to_s if stdlib),
|
||||||
"compiler" => (compiler.to_s if compiler),
|
"compiler" => (compiler.to_s if compiler),
|
||||||
"source" => source || {},
|
"source" => source,
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::JSON.dump(attributes)
|
Utils::JSON.dump(attributes)
|
||||||
|
|||||||
@ -8,5 +8,3 @@ HOMEBREW_TAP_DIR_REGEX = %r{#{Regexp.escape(HOMEBREW_LIBRARY.to_s)}/Taps/([\w-]+
|
|||||||
HOMEBREW_TAP_PATH_REGEX = Regexp.new(HOMEBREW_TAP_DIR_REGEX.source + %r{/(.*)}.source)
|
HOMEBREW_TAP_PATH_REGEX = Regexp.new(HOMEBREW_TAP_DIR_REGEX.source + %r{/(.*)}.source)
|
||||||
# match the default brew-cask tap e.g. Caskroom/cask
|
# match the default brew-cask tap e.g. Caskroom/cask
|
||||||
HOMEBREW_CASK_TAP_FORMULA_REGEX = %r{^(Caskroom)/(cask)/([\w+-.]+)$}
|
HOMEBREW_CASK_TAP_FORMULA_REGEX = %r{^(Caskroom)/(cask)/([\w+-.]+)$}
|
||||||
# the tap name used for formulae installed from paths or URLs
|
|
||||||
HOMEBREW_PATH_URL_TAP = "path or URL"
|
|
||||||
|
|||||||
@ -12,12 +12,14 @@ class TabTests < Homebrew::TestCase
|
|||||||
"unused_options" => @unused.as_flags,
|
"unused_options" => @unused.as_flags,
|
||||||
"built_as_bottle" => false,
|
"built_as_bottle" => false,
|
||||||
"poured_from_bottle" => true,
|
"poured_from_bottle" => true,
|
||||||
"tapped_from" => "Homebrew/homebrew",
|
|
||||||
"time" => nil,
|
"time" => nil,
|
||||||
"HEAD" => TEST_SHA1,
|
"HEAD" => TEST_SHA1,
|
||||||
"compiler" => "clang",
|
"compiler" => "clang",
|
||||||
"stdlib" => "libcxx",
|
"stdlib" => "libcxx",
|
||||||
"source" => { "path" => nil },
|
"source" => {
|
||||||
|
"tap" => "Homebrew/homebrew",
|
||||||
|
"path" => nil,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -27,7 +29,7 @@ class TabTests < Homebrew::TestCase
|
|||||||
assert_empty tab.used_options
|
assert_empty tab.used_options
|
||||||
refute_predicate tab, :built_as_bottle
|
refute_predicate tab, :built_as_bottle
|
||||||
refute_predicate tab, :poured_from_bottle
|
refute_predicate tab, :poured_from_bottle
|
||||||
assert_empty tab.tapped_from
|
assert_nil tab.tap
|
||||||
assert_nil tab.time
|
assert_nil tab.time
|
||||||
assert_nil tab.HEAD
|
assert_nil tab.HEAD
|
||||||
assert_equal MacOS.default_compiler, tab.cxxstdlib.compiler
|
assert_equal MacOS.default_compiler, tab.cxxstdlib.compiler
|
||||||
@ -58,7 +60,7 @@ class TabTests < Homebrew::TestCase
|
|||||||
|
|
||||||
def test_other_attributes
|
def test_other_attributes
|
||||||
assert_equal TEST_SHA1, @tab.HEAD
|
assert_equal TEST_SHA1, @tab.HEAD
|
||||||
assert_equal "Homebrew/homebrew", @tab.tapped_from
|
assert_equal "Homebrew/homebrew", @tab.tap
|
||||||
assert_nil @tab.time
|
assert_nil @tab.time
|
||||||
refute_predicate @tab, :built_as_bottle
|
refute_predicate @tab, :built_as_bottle
|
||||||
assert_predicate @tab, :poured_from_bottle
|
assert_predicate @tab, :poured_from_bottle
|
||||||
@ -72,7 +74,7 @@ class TabTests < Homebrew::TestCase
|
|||||||
assert_equal @unused.sort, tab.unused_options.sort
|
assert_equal @unused.sort, tab.unused_options.sort
|
||||||
refute_predicate tab, :built_as_bottle
|
refute_predicate tab, :built_as_bottle
|
||||||
assert_predicate tab, :poured_from_bottle
|
assert_predicate tab, :poured_from_bottle
|
||||||
assert_equal "Homebrew/homebrew", tab.tapped_from
|
assert_equal "Homebrew/homebrew", tab.tap
|
||||||
refute_nil tab.time
|
refute_nil tab.time
|
||||||
assert_equal TEST_SHA1, tab.HEAD
|
assert_equal TEST_SHA1, tab.HEAD
|
||||||
assert_equal :clang, tab.cxxstdlib.compiler
|
assert_equal :clang, tab.cxxstdlib.compiler
|
||||||
@ -85,7 +87,7 @@ class TabTests < Homebrew::TestCase
|
|||||||
assert_equal @tab.unused_options.sort, tab.unused_options.sort
|
assert_equal @tab.unused_options.sort, tab.unused_options.sort
|
||||||
assert_equal @tab.built_as_bottle, tab.built_as_bottle
|
assert_equal @tab.built_as_bottle, tab.built_as_bottle
|
||||||
assert_equal @tab.poured_from_bottle, tab.poured_from_bottle
|
assert_equal @tab.poured_from_bottle, tab.poured_from_bottle
|
||||||
assert_equal @tab.tapped_from, tab.tapped_from
|
assert_equal @tab.tap, tab.tap
|
||||||
assert_equal @tab.time, tab.time
|
assert_equal @tab.time, tab.time
|
||||||
assert_equal @tab.HEAD, tab.HEAD
|
assert_equal @tab.HEAD, tab.HEAD
|
||||||
assert_equal @tab.compiler, tab.compiler
|
assert_equal @tab.compiler, tab.compiler
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user