bottle: allow writing/committing new bottles.
This commit is contained in:
parent
5d0f868f06
commit
134210d9ed
@ -3,6 +3,7 @@ require 'bottles'
|
|||||||
require 'tab'
|
require 'tab'
|
||||||
require 'keg'
|
require 'keg'
|
||||||
require 'cmd/versions'
|
require 'cmd/versions'
|
||||||
|
require 'utils/inreplace'
|
||||||
require 'erb'
|
require 'erb'
|
||||||
|
|
||||||
class BottleMerger < Formula
|
class BottleMerger < Formula
|
||||||
@ -34,6 +35,10 @@ BOTTLE_ERB = <<-EOS
|
|||||||
EOS
|
EOS
|
||||||
|
|
||||||
module Homebrew extend self
|
module Homebrew extend self
|
||||||
|
class << self
|
||||||
|
include Utils::Inreplace
|
||||||
|
end
|
||||||
|
|
||||||
def keg_contains string, keg
|
def keg_contains string, keg
|
||||||
quiet_system 'fgrep', '--recursive', '--quiet', '--max-count=1', string, keg
|
quiet_system 'fgrep', '--recursive', '--quiet', '--max-count=1', string, keg
|
||||||
end
|
end
|
||||||
@ -139,7 +144,26 @@ module Homebrew extend self
|
|||||||
BottleMerger.class_eval bottle_block
|
BottleMerger.class_eval bottle_block
|
||||||
end
|
end
|
||||||
bottle = BottleMerger.new.bottle
|
bottle = BottleMerger.new.bottle
|
||||||
puts bottle_output bottle if bottle
|
next unless bottle
|
||||||
|
output = bottle_output bottle
|
||||||
|
puts output
|
||||||
|
|
||||||
|
if ARGV.include? '--write'
|
||||||
|
f = Formula.factory formula_name
|
||||||
|
formula_path = HOMEBREW_REPOSITORY+"Library/Formula/#{f.name}.rb"
|
||||||
|
inreplace formula_path do |s|
|
||||||
|
if f.bottle
|
||||||
|
s.gsub!(/ bottle do.+?end\n/m, output)
|
||||||
|
else
|
||||||
|
s.gsub!(/( (url|sha1|head|version) '\S*'\n+)+/m, '\0' + output + "\n")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
update_or_add = f.bottle.nil? ? 'add' : 'update'
|
||||||
|
|
||||||
|
safe_system 'git', 'commit', formula_path, '-m',
|
||||||
|
"#{f.name}: #{update_or_add} bottle."
|
||||||
|
end
|
||||||
end
|
end
|
||||||
exit 0
|
exit 0
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user