aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/untap.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cmd/untap.rb')
-rw-r--r--Library/Homebrew/cmd/untap.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/Library/Homebrew/cmd/untap.rb b/Library/Homebrew/cmd/untap.rb
index 78778e6fc..80d38934b 100644
--- a/Library/Homebrew/cmd/untap.rb
+++ b/Library/Homebrew/cmd/untap.rb
@@ -1,4 +1,5 @@
require 'cmd/tap' # for Pathname.recursive_formula
+require 'tempfile'
module Homebrew extend self
def untap
@@ -7,11 +8,19 @@ module Homebrew extend self
raise "No such tap!" unless tapd.directory?
+ gitignores = (HOMEBREW_PREFIX/"Library/Formula/.gitignore").read.split rescue []
+
tapd.find_formula do |pn|
- pn = HOMEBREW_REPOSITORY/"Library/Formula"/pn.basename
+ bn = pn.basename.to_s
+ pn = HOMEBREW_REPOSITORY/"Library/Formula"/bn
pn.delete if pn.symlink? and pn.realpath.to_s =~ %r[^#{tapd.realpath}]
+ gitignores.delete(bn)
end
-
rm_rf tapd
+
+ tf = Tempfile.new("brew-untap")
+ tf.write(gitignores.join("\n"))
+ tf.close
+ mv tf.path, "#{HOMEBREW_PREFIX}/Library/Formula/.gitignore"
end
end